Package org.apache.struts2.json
Class JSONResult
java.lang.Object
org.apache.struts2.json.JSONResult
- All Implemented Interfaces:
Serializable,Result
This result serializes an action into JSON.
Result parameters:
- excludeProperties - list of regular expressions matching the properties to be excluded. The regular expressions are evaluated against the OGNL expression representation of the properties.
Example:
<!-- START SNIPPET: example --> <result name="success" type="json" /> <!-- END SNIPPET: example -->
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThis result type doesn't have a default param, null is ok to reduce noise in logs -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected StringaddCallbackIfApplicable(jakarta.servlet.http.HttpServletRequest request, String json) protected SMDbuildSMDObject(ActionInvocation invocation) protected StringcreateJSONString(jakarta.servlet.http.HttpServletRequest request, Object rootObject) protected booleanenableGzip(jakarta.servlet.http.HttpServletRequest request) voidexecute(ActionInvocation invocation) protected ObjectfindRootObject(ActionInvocation invocation) protected StringRetrieve the encodingGets a list of regular expressions of properties to exclude from the JSON output.getRoot()booleanbooleanbooleanbooleanbooleanbooleanbooleanprotected ObjectreadRootObject(ActionInvocation invocation) voidsetCallbackParameter(String callbackParameter) voidsetContentType(String contentType) voidsetDefaultDateFormat(String defaultDateFormat) voidsetDefaultEncoding(String val) voidsetDevMode(String val) voidsetEnableGZIP(boolean enableGZIP) voidsetEnableSMD(boolean enableSMD) voidsetEncoding(String encoding) If defined will be used instead ofdefaultEncoding, you can define it with result <result name="success" type="json"> <param name="encoding">UTF-8</param> </result>voidsetEnumAsBean(boolean enumAsBean) voidsetErrorCode(int errorCode) voidsetExcludeNullProperties(boolean excludeNullProperties) voidsetExcludeProperties(String commaDelim) Sets a comma-delimited list of regular expressions to match properties that should be excluded from the JSON output.voidsetExcludeWildcards(String commaDelim) Sets a comma-delimited list of wildcard expressions to match properties that should be excluded from the JSON output.voidsetIgnoreHierarchy(boolean ignoreHierarchy) voidsetIgnoreInterfaces(boolean ignoreInterfaces) voidsetIncludeProperties(String commaDelim) Sets a comma-delimited list of regular expressions to match properties that should be included in the JSON output.voidsetIncludeWildcards(String commaDelim) Sets a comma-delimited list of wildcard expressions to match properties that should be included in the JSON output.voidsetJsonUtil(JSONUtil jsonUtil) voidsetNoCache(boolean noCache) voidsetPrefix(boolean prefix) voidSets the root object to be serialized, defaults to the Action.voidsetStatusCode(int statusCode) voidsetWrapPrefix(String wrapPrefix) voidsetWrapSuffix(String wrapSuffix) voidsetWrapWithComments(boolean wrapWithComments) protected voidwriteToResponse(jakarta.servlet.http.HttpServletResponse response, String json, boolean gzip)
-
Field Details
-
DEFAULT_PARAM
This result type doesn't have a default param, null is ok to reduce noise in logs
-
-
Constructor Details
-
JSONResult
public JSONResult()
-
-
Method Details
-
setDefaultEncoding
-
setDevMode
-
setJsonUtil
-
getExcludePropertiesList
Gets a list of regular expressions of properties to exclude from the JSON output.- Returns:
- A list of compiled regular expression patterns
-
setExcludeProperties
Sets a comma-delimited list of regular expressions to match properties that should be excluded from the JSON output.- Parameters:
commaDelim- A comma-delimited list of regular expressions
-
setExcludeWildcards
Sets a comma-delimited list of wildcard expressions to match properties that should be excluded from the JSON output.- Parameters:
commaDelim- A comma-delimited list of wildcard patterns
-
getIncludePropertiesList
- Returns:
- the includeProperties
-
setIncludeProperties
Sets a comma-delimited list of regular expressions to match properties that should be included in the JSON output.- Parameters:
commaDelim- A comma-delimited list of regular expressions
-
setIncludeWildcards
Sets a comma-delimited list of wildcard expressions to match properties that should be included in the JSON output.- Parameters:
commaDelim- A comma-delimited list of wildcard patterns
-
execute
-
readRootObject
-
findRootObject
-
createJSONString
protected String createJSONString(jakarta.servlet.http.HttpServletRequest request, Object rootObject) throws JSONException - Throws:
JSONException
-
enableGzip
protected boolean enableGzip(jakarta.servlet.http.HttpServletRequest request) -
writeToResponse
protected void writeToResponse(jakarta.servlet.http.HttpServletResponse response, String json, boolean gzip) throws IOException - Throws:
IOException
-
buildSMDObject
-
getEncoding
Retrieve the encoding- Returns:
- The encoding associated with this template (defaults to the value of param 'encoding', if empty default to 'struts.i18n.encoding' property)
-
addCallbackIfApplicable
-
getRoot
- Returns:
- OGNL expression of root object to be serialized
-
setRoot
Sets the root object to be serialized, defaults to the Action. If the Action implementsModelDriven, the Model will be used instead, with the logic assuming the Model was pushed onto the top of the stack.- Parameters:
root- OGNL expression of root object to be serialized
-
isWrapWithComments
public boolean isWrapWithComments()- Returns:
- Generated JSON must be enclosed in comments
-
setWrapWithComments
public void setWrapWithComments(boolean wrapWithComments) - Parameters:
wrapWithComments- Wrap generated JSON with comments
-
isEnableSMD
public boolean isEnableSMD()- Returns:
- Result has SMD generation enabled
-
setEnableSMD
public void setEnableSMD(boolean enableSMD) - Parameters:
enableSMD- Enable SMD generation for action, which can be used for JSON-RPC
-
setIgnoreHierarchy
public void setIgnoreHierarchy(boolean ignoreHierarchy) -
setIgnoreInterfaces
public void setIgnoreInterfaces(boolean ignoreInterfaces) - Parameters:
ignoreInterfaces- Controls whether interfaces should be inspected for method annotations You may need to set to this true if your action is a proxy as annotations on methods are not inherited
-
setEnumAsBean
public void setEnumAsBean(boolean enumAsBean) - Parameters:
enumAsBean- Controls how Enum's are serialized : If true, an Enum is serialized as a name=value pair (name=name()) (default) If false, an Enum is serialized as a bean with a special property _name=name()
-
isEnumAsBean
public boolean isEnumAsBean() -
isEnableGZIP
public boolean isEnableGZIP() -
setEnableGZIP
public void setEnableGZIP(boolean enableGZIP) -
isNoCache
public boolean isNoCache() -
setNoCache
public void setNoCache(boolean noCache) - Parameters:
noCache- Add headers to response to prevent the browser from caching the response
-
isIgnoreHierarchy
public boolean isIgnoreHierarchy() -
isExcludeNullProperties
public boolean isExcludeNullProperties() -
setExcludeNullProperties
public void setExcludeNullProperties(boolean excludeNullProperties) - Parameters:
excludeNullProperties- Do not serialize properties with a null value
-
setStatusCode
public void setStatusCode(int statusCode) - Parameters:
statusCode- Status code to be set in the response
-
setErrorCode
public void setErrorCode(int errorCode) - Parameters:
errorCode- Error code to be set in the response
-
setCallbackParameter
-
getCallbackParameter
-
setPrefix
public void setPrefix(boolean prefix) - Parameters:
prefix- Prefix JSON with "{} &&"
-
setContentType
- Parameters:
contentType- Content type to be set in the response
-
getWrapPrefix
-
setWrapPrefix
- Parameters:
wrapPrefix- Text to be inserted at the begining of the response
-
getWrapSuffix
-
setWrapSuffix
- Parameters:
wrapSuffix- Text to be inserted at the end of the response
-
setEncoding
If defined will be used instead ofdefaultEncoding, you can define it with result <result name="success" type="json"> <param name="encoding">UTF-8</param> </result>- Parameters:
encoding- valid encoding string
-
getDefaultDateFormat
-
setDefaultDateFormat
-