Package org.apache.struts2.json

# Class JSONResult

java.lang.Object
org.apache.struts2.json.JSONResult

All Implemented Interfaces:
  `Serializable`, `Result`

public class JSONResult extends Object implements 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:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `DEFAULT_PARAM`
  This result type doesn't have a default param, null is ok to reduce noise in logs

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JSONResult()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected 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)`
  `String`
  `getCallbackParameter()`
  `String`
  `getDefaultDateFormat()`
  `protected String`
  `getEncoding()`
  Retrieve the encoding
  `List<Pattern>`
  `getExcludePropertiesList()`
  Gets a list of regular expressions of properties to exclude from the JSON output.
  `List<Pattern>`
  `getIncludePropertiesList()`
  `String`
  `getRoot()`
  `String`
  `getWrapPrefix()`
  `String`
  `getWrapSuffix()`
  `boolean`
  `isEnableGZIP()`
  `boolean`
  `isEnableSMD()`
  `boolean`
  `isEnumAsBean()`
  `boolean`
  `isExcludeNullProperties()`
  `boolean`
  `isIgnoreHierarchy()`
  `boolean`
  `isNoCache()`
  `boolean`
  `isWrapWithComments()`
  `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 of `defaultEncoding`, 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`
  `setRoot(String root)`
  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)`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### DEFAULT_PARAM

    public static final String 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

    public void setDefaultEncoding(String val)

  - ### setDevMode

    public void setDevMode(String val)

  - ### setJsonUtil

    public void setJsonUtil(JSONUtil jsonUtil)

  - ### getExcludePropertiesList

    public List<Pattern> getExcludePropertiesList()
    Gets a list of regular expressions of properties to exclude from the JSON output.
    Returns:
      A list of compiled regular expression patterns

  - ### setExcludeProperties

    public void setExcludeProperties(String commaDelim)
    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

    public void setExcludeWildcards(String commaDelim)
    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

    public List<Pattern> getIncludePropertiesList()
    Returns:
      the includeProperties

  - ### setIncludeProperties

    public void setIncludeProperties(String commaDelim)
    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

    public void setIncludeWildcards(String commaDelim)
    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

    public void execute(ActionInvocation invocation) throws Exception
    Specified by:
      `execute` in interface `Result`
    Throws:
      `Exception`

  - ### readRootObject

    protected Object readRootObject(ActionInvocation invocation)

  - ### findRootObject

    protected Object findRootObject(ActionInvocation invocation)

  - ### 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

    protected SMD buildSMDObject(ActionInvocation invocation)

  - ### getEncoding

    protected String 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

    protected String addCallbackIfApplicable(jakarta.servlet.http.HttpServletRequest request, String json)

  - ### getRoot

    public String getRoot()
    Returns:
      OGNL expression of root object to be serialized

  - ### setRoot

    public void setRoot(String root)
    Sets the root object to be serialized, defaults to the Action. If the Action implements `ModelDriven`, 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

    public void setCallbackParameter(String callbackParameter)

  - ### getCallbackParameter

    public String getCallbackParameter()

  - ### setPrefix

    public void setPrefix(boolean prefix)
    Parameters:
      `prefix` - Prefix JSON with "{} &&"

  - ### setContentType

    public void setContentType(String contentType)
    Parameters:
      `contentType` - Content type to be set in the response

  - ### getWrapPrefix

    public String getWrapPrefix()

  - ### setWrapPrefix

    public void setWrapPrefix(String wrapPrefix)
    Parameters:
      `wrapPrefix` - Text to be inserted at the begining of the response

  - ### getWrapSuffix

    public String getWrapSuffix()

  - ### setWrapSuffix

    public void setWrapSuffix(String wrapSuffix)
    Parameters:
      `wrapSuffix` - Text to be inserted at the end of the response

  - ### setEncoding

    public void setEncoding(String encoding)
    If defined will be used instead of `defaultEncoding`, you can define it with result <result name="success" type="json"> <param name="encoding">UTF-8</param> </result>
    Parameters:
      `encoding` - valid encoding string

  - ### getDefaultDateFormat

    public String getDefaultDateFormat()

  - ### setDefaultDateFormat

    public void setDefaultDateFormat(String defaultDateFormat)