Package org.apache.struts2.json
Class JSONUtil
java.lang.Object
org.apache.struts2.json.JSONUtil
Wrapper for JSONWriter with some utility methods.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
Realizes the visit(Class) method called by vistInterfaces for all encountered classes/interfaces -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Object
deserialize
(Reader reader) Deserializes a object from JSONstatic Object
deserialize
(String json) Deserializes a object from JSONstatic boolean
isGzipInRequest
(jakarta.servlet.http.HttpServletRequest request) static Method[]
listSMDMethods
(Class clazz, boolean ignoreInterfaces) List visible methods carrying the @SMDMethod annotationprocessIncludePatterns
(Set<String> includePatterns, String type) void
Serializes an object into JSON to the given writer.void
Serializes an object into JSON to the given writer.void
serialize
(Writer writer, Object object, Collection<Pattern> excludeProperties, Collection<Pattern> includeProperties, boolean excludeNullProperties) Serializes an object into JSON to the given writer, excluding any properties matching any of the regular expressions in the given collection.void
serialize
(Writer writer, Object object, Collection<Pattern> excludeProperties, Collection<Pattern> includeProperties, boolean excludeNullProperties, boolean cacheBeanInfo) Serializes an object into JSON to the given writer, excluding any properties matching any of the regular expressions in the given collection.Serializes an object into JSON.serialize
(Object object, Collection<Pattern> excludeProperties, Collection<Pattern> includeProperties, boolean ignoreHierarchy, boolean excludeNullProperties) Serializes an object into JSON, excluding any properties matching any of the regular expressions in the given collection.serialize
(Object object, Collection<Pattern> excludeProperties, Collection<Pattern> includeProperties, boolean ignoreHierarchy, boolean excludeNullProperties, boolean cacheBeanInfo) Serializes an object into JSON, excluding any properties matching any of the regular expressions in the given collection.serialize
(Object object, Collection<Pattern> excludeProperties, Collection<Pattern> includeProperties, boolean ignoreHierarchy, boolean enumAsBean, boolean excludeNullProperties, String defaultDateFormat) Serializes an object into JSON, excluding any properties matching any of the regular expressions in the given collection.serialize
(Object object, Collection<Pattern> excludeProperties, Collection<Pattern> includeProperties, boolean ignoreHierarchy, boolean enumAsBean, boolean excludeNullProperties, String defaultDateFormat, boolean cacheBeanInfo) Serializes an object into JSON, excluding any properties matching any of the regular expressions in the given collection.void
setContainer
(Container container) void
setWriter
(JSONWriter writer) static boolean
visitInterfaces
(Class aClass, JSONUtil.ClassVisitor visitor) Visit all the interfaces realized by the specified object, its superclasses and its interfaces
Visitation is performed in the following order: aClass aClass' interfaces the interface's superclasses (interfaces) aClass' superclass superclass' interfaces superclass' interface's superclasses (interfaces) super-superclass and so on
The Object base class is base excluded.static void
writeJSONToResponse
(SerializationParams serializationParams)
-
Field Details
-
RFC3339_FORMAT
- See Also:
-
CACHE_BEAN_INFO_DEFAULT
public static final boolean CACHE_BEAN_INFO_DEFAULT- See Also:
-
REGEXP_PATTERN
- See Also:
-
WILDCARD_PATTERN
- See Also:
-
-
Constructor Details
-
JSONUtil
public JSONUtil()
-
-
Method Details
-
setWriter
-
setContainer
-
serialize
Serializes an object into JSON.- Parameters:
object
- to be serializedcacheBeanInfo
- Specifies whether to cache bean info in the JSONWriter- Returns:
- JSON string
- Throws:
JSONException
- in case of error during serialize
-
serialize
public String serialize(Object object, Collection<Pattern> excludeProperties, Collection<Pattern> includeProperties, boolean ignoreHierarchy, boolean excludeNullProperties) throws JSONException Serializes an object into JSON, excluding any properties matching any of the regular expressions in the given collection.- Parameters:
object
- to be serializedexcludeProperties
- Patterns matching properties to excludeincludeProperties
- Patterns matching properties to includeignoreHierarchy
- whether to ignore properties defined on base classes of the root objectexcludeNullProperties
- enable/disable excluding of null properties- Returns:
- JSON string
- Throws:
JSONException
- in case of error during serialize
-
serialize
public String serialize(Object object, Collection<Pattern> excludeProperties, Collection<Pattern> includeProperties, boolean ignoreHierarchy, boolean excludeNullProperties, boolean cacheBeanInfo) throws JSONException Serializes an object into JSON, excluding any properties matching any of the regular expressions in the given collection.- Parameters:
object
- to be serializedexcludeProperties
- Patterns matching properties to excludeincludeProperties
- Patterns matching properties to includeignoreHierarchy
- whether to ignore properties defined on base classes of the root objectexcludeNullProperties
- enable/disable excluding of null propertiescacheBeanInfo
- Specifies whether to cache bean info in the JSONWriter- Returns:
- JSON string
- Throws:
JSONException
- in case of error during serialize
-
serialize
public String serialize(Object object, Collection<Pattern> excludeProperties, Collection<Pattern> includeProperties, boolean ignoreHierarchy, boolean enumAsBean, boolean excludeNullProperties, String defaultDateFormat) throws JSONException Serializes an object into JSON, excluding any properties matching any of the regular expressions in the given collection.- Parameters:
object
- to be serializedexcludeProperties
- Patterns matching properties to excludeincludeProperties
- Patterns matching properties to includeignoreHierarchy
- whether to ignore properties defined on base classes of the root objectenumAsBean
- whether to serialized enums a Bean or name=value pairexcludeNullProperties
- enable/disable excluding of null propertiesdefaultDateFormat
- date format used to serialize dates- Returns:
- JSON string
- Throws:
JSONException
- in case of error during serialize
-
serialize
public String serialize(Object object, Collection<Pattern> excludeProperties, Collection<Pattern> includeProperties, boolean ignoreHierarchy, boolean enumAsBean, boolean excludeNullProperties, String defaultDateFormat, boolean cacheBeanInfo) throws JSONException Serializes an object into JSON, excluding any properties matching any of the regular expressions in the given collection.- Parameters:
object
- to be serializedexcludeProperties
- Patterns matching properties to excludeincludeProperties
- Patterns matching properties to includeignoreHierarchy
- whether to ignore properties defined on base classes of the root objectenumAsBean
- whether to serialized enums a Bean or name=value pairexcludeNullProperties
- enable/disable excluding of null propertiesdefaultDateFormat
- date format used to serialize datescacheBeanInfo
- Specifies whether to cache bean info in the JSONWriter- Returns:
- JSON string
- Throws:
JSONException
- in case of error during serialize
-
serialize
Serializes an object into JSON to the given writer.- Parameters:
writer
- Writer to serialize the object toobject
- object to be serialized- Throws:
IOException
- in case of IO errorsJSONException
- in case of error during serialize
-
serialize
public void serialize(Writer writer, Object object, boolean cacheBeanInfo) throws IOException, JSONException Serializes an object into JSON to the given writer.- Parameters:
writer
- Writer to serialize the object toobject
- object to be serializedcacheBeanInfo
- Specifies whether to cache bean info in the JSONWriter- Throws:
IOException
- in case of IO errorsJSONException
- in case of error during serialize
-
serialize
public void serialize(Writer writer, Object object, Collection<Pattern> excludeProperties, Collection<Pattern> includeProperties, boolean excludeNullProperties) throws IOException, JSONException Serializes an object into JSON to the given writer, excluding any properties matching any of the regular expressions in the given collection.- Parameters:
writer
- Writer to serialize the object toobject
- object to be serializedexcludeProperties
- Patterns matching properties to ignoreincludeProperties
- Patterns matching properties to includeexcludeNullProperties
- enable/disable excluding of null properties- Throws:
IOException
- in case of IO errorsJSONException
- in case of error during serialize
-
serialize
public void serialize(Writer writer, Object object, Collection<Pattern> excludeProperties, Collection<Pattern> includeProperties, boolean excludeNullProperties, boolean cacheBeanInfo) throws IOException, JSONException Serializes an object into JSON to the given writer, excluding any properties matching any of the regular expressions in the given collection.- Parameters:
writer
- Writer to serialize the object toobject
- object to be serializedexcludeProperties
- Patterns matching properties to ignoreincludeProperties
- Patterns matching properties to includeexcludeNullProperties
- enable/disable excluding of null propertiescacheBeanInfo
- Specifies whether to cache bean info in the JSONWriter- Throws:
IOException
- in case of IO errorsJSONException
- in case of error during serialize
-
deserialize
Deserializes a object from JSON- Parameters:
json
- string in JSON- Returns:
- desrialized object
- Throws:
JSONException
- in case of error during serialize
-
deserialize
Deserializes a object from JSON- Parameters:
reader
- Reader to read a JSON string from- Returns:
- deserialized object
- Throws:
JSONException
- when IOException happens
-
writeJSONToResponse
- Throws:
IOException
-
asSet
-
listSMDMethods
List visible methods carrying the @SMDMethod annotation- Parameters:
clazz
- classignoreInterfaces
- if true, only the methods of the class are examined. If false, annotations on every interfaces' methods are examined.- Returns:
- array of SMD methods
-
visitInterfaces
Visit all the interfaces realized by the specified object, its superclasses and its interfaces
Visitation is performed in the following order: aClass aClass' interfaces the interface's superclasses (interfaces) aClass' superclass superclass' interfaces superclass' interface's superclasses (interfaces) super-superclass and so on
The Object base class is base excluded. Classes/interfaces are only visited once each- Parameters:
aClass
- the class to start recursing upwards fromvisitor
- this vistor is called for each class/interface encountered- Returns:
- true if all classes/interfaces were visited, false if it was exited early as specified by a ClassVisitor result
-
isGzipInRequest
public static boolean isGzipInRequest(jakarta.servlet.http.HttpServletRequest request) -
processIncludePatterns
-