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:
  • 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)