
public.javadoc.org.spincast.plugins.jacksonjson.SpincastJsonManager.html Maven / Gradle / Ivy
Show all versions of spincast-website Show documentation
SpincastJsonManager (org.spincast:spincast-framework 2.1.1 API)
Package org.spincast.plugins.jacksonjson
Class SpincastJsonManager
java.lang.Object
org.spincast.plugins.jacksonjson.SpincastJsonManager
- All Implemented Interfaces:
JsonManager
Spincast Jackson Json manager
-
Field Summary
Fields
-
Constructor Summary
Constructors
Constructor
Description
SpincastJsonManager(com.google.inject.Provider<com.google.inject.Injector> guiceProvider,
JsonObjectFactory jsonObjectFactory,
Set<JsonMixinInfo> jsonMixinInfos,
SpincastJsonManagerConfig spincastJsonManagerConfig,
SpincastConfig spincastConfig,
JsonPathUtils jsonPathUtils,
SpincastUtils spincastUtils,
FormFactory formFactory)
-
Method Summary
Modifier and Type
Method
Description
Tries to clone an object to a JsonObject
or
a JsonArray
, if the object is not of
a primitive type (or BigDecimal
).
Tries to clone an object to a JsonObject
or
a JsonArray
, if the object is not of
a primitive type (or BigDecimal
).
cloneJsonArray(JsonArray jsonArray,
boolean mutable)
Deep copy of the JsonArray
, so any
modification to the original won't affect the
clone, and vice-versa.
cloneJsonObject(JsonObject jsonObject,
boolean mutable)
Deep copy of the JsonObject
, so any
modification to the original won't affect the
clone, and vice-versa.
protected void
configureEmptyBeans(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
protected void
configureMixins(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
protected void
configureObjectMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
Configuration of the ObjectMapper.
convertToJsonDate(Date date)
Converts a Date to a Json
date format.
convertToNativeType(Object originalObject)
Convert a random object to a valid native JsonObject type, if
it's not already.
create()
Creates an empty JsonObject
Creates an empty JsonArray
.
createForm(String formName)
Creates an empty Form
, which is a JsonObject +
a validations container.
protected com.fasterxml.jackson.databind.ObjectMapper
Creates the ObjectMapper
enumsToFriendlyJsonArray(Enum<?>[] enumValues)
Convert the enums to an array of JsonObjects
that
have a ".name" property (the name()
of the enum)
and a ".label" property (the toString()
of the
enum).
enumToFriendlyJsonObject(Enum<?> enumValue)
Convert the enum value to a JsonObject
that
has a ".name" property (the name()
of the enum)
and a ".label" property (the toString()
of the
enum)
fromClasspathFile(String path)
Creates a JsonObject
from a classpath
Json file.
fromCollectionToJsonArray(Collection<?> collection)
Creates a JsonArray
from a random collection.
Creates a JsonObject
from a Json file.
Creates a JsonObject
from the path of
a file, on the file system.
fromInputStream(InputStream inputStream)
Creates a JsonObject
from an inputStream.
<T> T
fromInputStream(InputStream inputStream,
Class<T> clazz)
Creates an instance of the specified T
type
from a Json
inputStream.
fromInputStreamArray(InputStream inputStream)
Creates a JsonArray
from an inputStream.
fromInputStreamToMap(InputStream inputStream)
Creates a Map<String, Object>
from a Json
inputStream.
fromListArray(List<?> elements)
Creates a JsonArray
from a List
of elements.
Creates an empty JsonObject
based on the specified Map.
Creates a JsonObject
based on the specified Map.
fromObject(Object object)
Creates a JsonObject
from a random object..
fromString(String jsonString)
Creates a JsonObject
from a Json
String.
<T> T
fromString(String jsonString,
Class<T> clazz)
Creates an instance of the specified T
type
from a Json
String.
fromStringArray(String jsonString)
Creates a JsonArray
from a Json
String.
fromStringToMap(String jsonString)
Creates a Map<String, Object>
from a Json
String.
protected com.fasterxml.jackson.databind.JsonSerializer<BigDecimal>
protected com.fasterxml.jackson.databind.JsonSerializer<Date>
getElementAtJsonPath(JsonArray array,
String jsonPath)
Gets an element from the JsonArray
at the
specified JsonPath
.
getElementAtJsonPath(JsonArray array,
String jsonPath,
Object defaultValue)
Gets an element from the JsonArray
at the
specified JsonPath
.
getElementAtJsonPath(JsonObject obj,
String jsonPath)
Gets an element from the JsonObject
at the specified JsonPath
.
getElementAtJsonPath(JsonObject obj,
String jsonPath,
Object defaultValue)
Gets an element from the JsonObject
at the specified JsonPath
.
protected com.fasterxml.jackson.databind.JsonSerializer<Enum<?>>
protected FormFactory
protected com.google.inject.Injector
getGuice()
protected com.fasterxml.jackson.databind.JsonSerializer<Instant>
protected com.fasterxml.jackson.core.util.DefaultPrettyPrinter
protected String
protected String
protected com.fasterxml.jackson.databind.JsonDeserializer<JsonArray>
protected com.fasterxml.jackson.databind.JsonSerializer<JsonArray>
protected Set<JsonMixinInfo>
protected com.fasterxml.jackson.databind.JsonDeserializer<JsonObject>
protected JsonObjectFactory
protected com.fasterxml.jackson.databind.JsonSerializer<JsonObject>
protected JsonPathUtils
protected int
protected com.fasterxml.jackson.databind.ObjectMapper
protected SpincastConfig
protected SpincastJsonManagerConfig
protected SpincastUtils
protected void
injectDependencies(Object obj)
Once the deserialization of an Object is done,
we inject dependencies using Guice.
protected boolean
Should comments be accepted in Json?
boolean
isElementExists(JsonArray array,
String jsonPath)
Does the array contain an element at
the specified JsonPath
(even if
null
)?
boolean
isElementExists(JsonObject obj,
String jsonPath)
Does the object contain an element at
the specified JsonPath
(even if
null
)?
parseDateFromJson(String str)
Currently support ISO 8601 encoded dates.
void
putElementAtJsonPath(JsonObjectOrArray objOrArray,
String jsonPath,
Object value)
Puts an element in the object at the specified JsonPath
.
void
putElementAtJsonPath(JsonObjectOrArray objOrArray,
String jsonPath,
Object value,
boolean clone)
Puts a clone of the element in the object at the
specified JsonPath
.
protected void
registerCustomModules(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
protected void
registerCustomTypeSerializerModule(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
Register our custom serializers for some types.
protected void
registerJava8DatatypesModule(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
protected void
registerJsonObjectModule(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
Register our custom (de)serializers for JsonObject
void
removeElementAtJsonPath(JsonArray array,
String jsonPath)
Removes an element at the specified JsonPath
from the
array.
void
removeElementAtJsonPath(JsonObject obj,
String jsonPath)
Removes an element at the specified JsonPath
from the
object.
toJsonString(Object obj)
Gets the Json
String representation of
the specified object.
toJsonString(Object obj,
boolean pretty)
Gets the Json
String representation of the
specified object.
-
Field Details
-
logger
protected static final org.slf4j.Logger logger
-
ENUM_SERIALIZER_FIELD_NAME_NAME
- See Also:
-
-
ENUM_SERIALIZER_FIELD_NAME_LABEL
- See Also:
-
-
Constructor Details
-
SpincastJsonManager
@Inject
public SpincastJsonManager(com.google.inject.Provider<com.google.inject.Injector> guiceProvider,
JsonObjectFactory jsonObjectFactory,
@Nullable
Set<JsonMixinInfo> jsonMixinInfos,
SpincastJsonManagerConfig spincastJsonManagerConfig,
SpincastConfig spincastConfig,
JsonPathUtils jsonPathUtils,
SpincastUtils spincastUtils,
FormFactory formFactory)
-
Method Details
-
getGuice
protected com.google.inject.Injector getGuice()
-
getJsonObjectFactory
-
getJsonMixinInfos
-
getSpincastJsonManagerConfig
-
getSpincastConfig
-
getJsonPathUtils
-
getSpincastUtils
-
getFormFactory
-
getJacksonPrettyPrinter
protected com.fasterxml.jackson.core.util.DefaultPrettyPrinter getJacksonPrettyPrinter()
-
getJacksonPrettyPrinterNewline
-
getJacksonPrettyPrinterIndentation
-
getObjectMapper
protected com.fasterxml.jackson.databind.ObjectMapper getObjectMapper()
-
createObjectManager
protected com.fasterxml.jackson.databind.ObjectMapper createObjectManager()
Creates the ObjectMapper
-
configureObjectMapper
protected void configureObjectMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
Configuration of the ObjectMapper.
-
isAllowCommentsInJson
protected boolean isAllowCommentsInJson()
Should comments be accepted in Json?
-
configureEmptyBeans
protected void configureEmptyBeans(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
-
configureMixins
protected void configureMixins(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
-
getJsonObjectSerializer
-
getEnumSerializer
-
getJsonArraySerializer
-
getDateSerializer
-
getInstantSerializer
-
getBigDecimalSerializer
-
getJsonObjectDeserializer
-
getJsonArrayDeserializer
-
registerCustomModules
protected void registerCustomModules(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
-
registerJsonObjectModule
protected void registerJsonObjectModule(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
Register our custom (de)serializers for JsonObject
-
registerCustomTypeSerializerModule
protected void registerCustomTypeSerializerModule(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
Register our custom serializers for some types.
-
registerJava8DatatypesModule
protected void registerJava8DatatypesModule(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
-
toJsonString
Description copied from interface: JsonManager
Gets the Json
String representation of
the specified object.
- Specified by:
toJsonString
in interface JsonManager
-
toJsonString
Description copied from interface: JsonManager
Gets the Json
String representation of the
specified object.
- Specified by:
toJsonString
in interface JsonManager
pretty
- if true
, the generated
String will be formatted.
-
injectDependencies
Once the deserialization of an Object is done,
we inject dependencies using Guice.
-
create
Description copied from interface: JsonManager
Creates an empty JsonObject
- Specified by:
create
in interface JsonManager
-
createArray
Description copied from interface: JsonManager
Creates an empty JsonArray
.
- Specified by:
createArray
in interface JsonManager
-
fromObject
Description copied from interface: JsonManager
Creates a JsonObject
from a random object..
- Specified by:
fromObject
in interface JsonManager
-
fromString
Description copied from interface: JsonManager
Creates an instance of the specified T
type
from a Json
String.
- Specified by:
fromString
in interface JsonManager
- Returns:
- the deserialized version of the
parameter or
null
if the parameter is
null
.
-
fromInputStream
Description copied from interface: JsonManager
Creates an instance of the specified T
type
from a Json
inputStream.
- Specified by:
fromInputStream
in interface JsonManager
- Returns:
- the deserialized version of the
parameter or
null
if the parameter is
null
.
-
fromStringToMap
Description copied from interface: JsonManager
Creates a Map<String, Object>
from a Json
String.
- Specified by:
fromStringToMap
in interface JsonManager
- Returns:
- the
Map
version of the
parameter or null
if the parameter is
null
.
-
fromInputStreamToMap
Description copied from interface: JsonManager
Creates a Map<String, Object>
from a Json
inputStream.
- Specified by:
fromInputStreamToMap
in interface JsonManager
- Returns:
- the
Map
version of the
parameter or null
if the parameter is
null
.
-
fromString
Description copied from interface: JsonManager
Creates a JsonObject
from a Json
String.
- Specified by:
fromString
in interface JsonManager
- Returns:
- the
JsonObject
version of the
parameter or null
if the parameter is
null
.
-
fromMap
Description copied from interface: JsonManager
Creates an empty JsonObject
based on the specified Map.
An attempt will be made to create a deep copy of every elements so
a modification won't affect any external references and vice-versa.
The keys will be used as is, not parsed as JsonPaths.
- Specified by:
fromMap
in interface JsonManager
- Returns:
- the
JsonObject
version of the
parameter or null
if the parameter is
null
.
-
fromMap
Description copied from interface: JsonManager
Creates a JsonObject
based on the specified Map.
An attempt will be made to create a deep copy of every elements so
a modification won't affect any external references and vice-versa.
- Specified by:
fromMap
in interface JsonManager
parseKeysAsJsonPaths
- if true
, the keys will
be parsed as JsonPaths
, otherwise they will ne used
as is.
- Returns:
- the
JsonObject
version of the
parameter or null
if the parameter is
null
.
-
fromInputStream
Description copied from interface: JsonManager
Creates a JsonObject
from an inputStream.
- Specified by:
fromInputStream
in interface JsonManager
- Returns:
- the
JsonObject
version of the
parameter or null
if the parameter is
null
.
-
fromFile
Description copied from interface: JsonManager
Creates a JsonObject
from a Json file.
- Specified by:
fromFile
in interface JsonManager
- Returns:
- the deserialized
JsonObject
or null
if the file is
null
or doesn't exist.
-
fromFile
Description copied from interface: JsonManager
Creates a JsonObject
from the path of
a file, on the file system.
- Specified by:
fromFile
in interface JsonManager
- Returns:
- the deserialized
JsonObject
or null
if the file is
null
or doesn't exist.
-
fromClasspathFile
Description copied from interface: JsonManager
Creates a JsonObject
from a classpath
Json file.
- Specified by:
fromClasspathFile
in interface JsonManager
- Returns:
- the deserialized
JsonObject
or null
if the file doesn't exist.
-
fromCollectionToJsonArray
Description copied from interface: JsonManager
Creates a JsonArray
from a random collection.
- Specified by:
fromCollectionToJsonArray
in interface JsonManager
-
fromStringArray
Description copied from interface: JsonManager
Creates a JsonArray
from a Json
String.
- Specified by:
fromStringArray
in interface JsonManager
- Returns:
- the
JsonArray
version of the
parameter or null
if the parameter
is null
.
-
fromListArray
Description copied from interface: JsonManager
Creates a JsonArray
from a List
of elements.
- Specified by:
fromListArray
in interface JsonManager
- Returns:
- the
JsonArray
version of the
parameter or null
if the parameter
is null
.
-
fromInputStreamArray
Description copied from interface: JsonManager
Creates a JsonArray
from an inputStream.
- Specified by:
fromInputStreamArray
in interface JsonManager
- Returns:
- the
JsonArray
version of the
parameter or null
if the parameter
is null
.
-
getMaxNumberOfKeysWhenConvertingMapToJsonObject
protected int getMaxNumberOfKeysWhenConvertingMapToJsonObject()
-
getElementAtJsonPath
Description copied from interface: JsonManager
Gets an element from the JsonObject
at the specified JsonPath
.
- Specified by:
getElementAtJsonPath
in interface JsonManager
- Returns:
- the element or
null
if not found.
-
getElementAtJsonPath
Description copied from interface: JsonManager
Gets an element from the JsonObject
at the specified JsonPath
.
- Specified by:
getElementAtJsonPath
in interface JsonManager
- Returns:
- the element or
null
if not found.
-
getElementAtJsonPath
Description copied from interface: JsonManager
Gets an element from the JsonArray
at the
specified JsonPath
.
- Specified by:
getElementAtJsonPath
in interface JsonManager
- Returns:
- the element or
null
if not found.
-
getElementAtJsonPath
Description copied from interface: JsonManager
Gets an element from the JsonArray
at the
specified JsonPath
.
- Specified by:
getElementAtJsonPath
in interface JsonManager
- Returns:
- the element or
null
if not found.
-
putElementAtJsonPath
Description copied from interface: JsonManager
Puts an element in the object at the specified JsonPath
.
All the hierarchy to the end of the JsonPath
is created if required.
- Specified by:
putElementAtJsonPath
in interface JsonManager
-
putElementAtJsonPath
public void putElementAtJsonPath(JsonObjectOrArray objOrArray,
String jsonPath,
Object value,
boolean clone)
Description copied from interface: JsonManager
Puts a clone of the element in the object at the
specified JsonPath
.
All the hierarchy to the end of the JsonPath
is created if required.
- Specified by:
putElementAtJsonPath
in interface JsonManager
-
createForm
Description copied from interface: JsonManager
Creates an empty Form
, which is a JsonObject +
a validations container.
- Specified by:
createForm
in interface JsonManager
-
convertToJsonDate
Description copied from interface: JsonManager
Converts a Date to a Json
date format.
- Specified by:
convertToJsonDate
in interface JsonManager
-
parseDateFromJson
Currently support ISO 8601 encoded dates.
- Specified by:
parseDateFromJson
in interface JsonManager
-
convertToNativeType
Description copied from interface: JsonManager
Convert a random object to a valid native JsonObject type, if
it's not already.
- Specified by:
convertToNativeType
in interface JsonManager
-
cloneJsonObject
Description copied from interface: JsonManager
Deep copy of the JsonObject
, so any
modification to the original won't affect the
clone, and vice-versa.
Note that if the current object is immutable and
the mutable
parameter is set to false
,
then the current object will be returned as is, since no cloning
is required.
- Specified by:
cloneJsonObject
in interface JsonManager
mutable
- if true
the resulting
array and all its children will be mutable, otherwise
they will all be immutable.
-
cloneJsonArray
Description copied from interface: JsonManager
Deep copy of the JsonArray
, so any
modification to the original won't affect the
clone, and vice-versa.
Note that if the current object is immutable and
the mutable
parameter is set to false
,
then the current array will be returned as is, since no cloning
is required.
- Specified by:
cloneJsonArray
in interface JsonManager
mutable
- if true
the resulting
array and all its children will be mutable, otherwise
they will all be immutable.
-
clone
Description copied from interface: JsonManager
Tries to clone an object to a JsonObject
or
a JsonArray
, if the object is not of
a primitive type (or BigDecimal
).
The cloning is made by serializing the Object to a
Json string, and deserializing back. So any (de)serialization
rules apply.
The non primitive object will be cloned to a JsonArray
if it is a :
-
JsonArray
-
Collection
-
Array
- Specified by:
clone
in interface JsonManager
-
clone
Description copied from interface: JsonManager
Tries to clone an object to a JsonObject
or
a JsonArray
, if the object is not of
a primitive type (or BigDecimal
).
The cloning is made by serializing the Object to a
Json string, and deserializing back. So any (de)serialization
rules apply.
The non primitive object will be cloned to a JsonArray
if it is a :
-
JsonArray
-
Collection
-
Array
- Specified by:
clone
in interface JsonManager
mutable
- if false
, the resulting
Object and all its potential children
will be immutable.
-
removeElementAtJsonPath
Description copied from interface: JsonManager
Removes an element at the specified JsonPath
from the
object.
- Specified by:
removeElementAtJsonPath
in interface JsonManager
-
removeElementAtJsonPath
Description copied from interface: JsonManager
Removes an element at the specified JsonPath
from the
array.
- Specified by:
removeElementAtJsonPath
in interface JsonManager
-
isElementExists
Description copied from interface: JsonManager
Does the object contain an element at
the specified JsonPath
(even if
null
)?
- Specified by:
isElementExists
in interface JsonManager
-
isElementExists
Description copied from interface: JsonManager
Does the array contain an element at
the specified JsonPath
(even if
null
)?
- Specified by:
isElementExists
in interface JsonManager
-
enumToFriendlyJsonObject
Description copied from interface: JsonManager
Convert the enum value to a JsonObject
that
has a ".name" property (the name()
of the enum)
and a ".label" property (the toString()
of the
enum)
- Specified by:
enumToFriendlyJsonObject
in interface JsonManager
-
enumsToFriendlyJsonArray
Description copied from interface: JsonManager
Convert the enums to an array of JsonObjects
that
have a ".name" property (the name()
of the enum)
and a ".label" property (the toString()
of the
enum).
- Specified by:
enumsToFriendlyJsonArray
in interface JsonManager