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 String
This result type doesn't have a default param, null is ok to reduce noise in logs -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected String
addCallbackIfApplicable
(jakarta.servlet.http.HttpServletRequest request, String json) protected SMD
buildSMDObject
(ActionInvocation invocation) protected String
createJSONString
(jakarta.servlet.http.HttpServletRequest request, Object rootObject) protected boolean
enableGzip
(jakarta.servlet.http.HttpServletRequest request) void
execute
(ActionInvocation invocation) protected Object
findRootObject
(ActionInvocation invocation) protected String
Retrieve the encodingGets a list of regular expressions of properties to exclude from the JSON output.getRoot()
boolean
boolean
boolean
boolean
boolean
boolean
boolean
protected Object
readRootObject
(ActionInvocation invocation) void
setCallbackParameter
(String callbackParameter) void
setContentType
(String contentType) void
setDefaultDateFormat
(String defaultDateFormat) void
setDefaultEncoding
(String val) void
setDevMode
(String val) void
setEnableGZIP
(boolean enableGZIP) void
setEnableSMD
(boolean enableSMD) void
setEncoding
(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>void
setEnumAsBean
(boolean enumAsBean) void
setErrorCode
(int errorCode) void
setExcludeNullProperties
(boolean excludeNullProperties) void
setExcludeProperties
(String commaDelim) Sets a comma-delimited list of regular expressions to match properties that should be excluded from the JSON output.void
setExcludeWildcards
(String commaDelim) Sets a comma-delimited list of wildcard expressions to match properties that should be excluded from the JSON output.void
setIgnoreHierarchy
(boolean ignoreHierarchy) void
setIgnoreInterfaces
(boolean ignoreInterfaces) void
setIncludeProperties
(String commaDelim) Sets a comma-delimited list of regular expressions to match properties that should be included in the JSON output.void
setIncludeWildcards
(String commaDelim) Sets a comma-delimited list of wildcard expressions to match properties that should be included in the JSON output.void
setJsonUtil
(JSONUtil jsonUtil) void
setNoCache
(boolean noCache) void
setPrefix
(boolean prefix) void
Sets the root object to be serialized, defaults to the Action.void
setStatusCode
(int statusCode) void
setWrapPrefix
(String wrapPrefix) void
setWrapSuffix
(String wrapSuffix) void
setWrapWithComments
(boolean wrapWithComments) protected void
writeToResponse
(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
-