Class JsonOps
java.lang.Object
com.github.darksoulq.abyssallib.common.serialization.DynamicOps<com.fasterxml.jackson.databind.JsonNode>
com.github.darksoulq.abyssallib.common.serialization.ops.JsonOps
An implementation of
DynamicOps for Jackson's JsonNode tree model.
This class allows Codecs
to serialize and deserialize Java objects to and from JSON structures.-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptioncom.fasterxml.jackson.databind.JsonNodecreateBoolean(boolean value) Creates aBooleanNodefrom a boolean.com.fasterxml.jackson.databind.JsonNodecreateDouble(double value) Creates aDoubleNodefrom a double.com.fasterxml.jackson.databind.JsonNodecreateFloat(float value) Creates aFloatNodefrom a float.com.fasterxml.jackson.databind.JsonNodecreateInt(int value) Creates anIntNodefrom an integer.com.fasterxml.jackson.databind.JsonNodecreateList(List<com.fasterxml.jackson.databind.JsonNode> elements) Creates anArrayNodefrom a list of JSON nodes.com.fasterxml.jackson.databind.JsonNodecreateLong(long value) Creates aLongNodefrom a long.com.fasterxml.jackson.databind.JsonNodecreateMap(Map<com.fasterxml.jackson.databind.JsonNode, com.fasterxml.jackson.databind.JsonNode> map) Creates anObjectNodefrom a map of JSON nodes.com.fasterxml.jackson.databind.JsonNodecreateString(String value) Creates aTextNodefrom a String.com.fasterxml.jackson.databind.JsonNodeempty()Returns the representation of a null value in JSON.getBooleanValue(com.fasterxml.jackson.databind.JsonNode input) Extracts a Boolean from a JSON node if it is a boolean.getDoubleValue(com.fasterxml.jackson.databind.JsonNode input) Extracts a Double from a JSON node if it is a number.getFloatValue(com.fasterxml.jackson.databind.JsonNode input) Extracts a Float from a JSON node if it is a number.getIntValue(com.fasterxml.jackson.databind.JsonNode input) Extracts an Integer from a JSON node if it is a number.getList(com.fasterxml.jackson.databind.JsonNode input) Converts a JSON array node into a List of nodes.getLongValue(com.fasterxml.jackson.databind.JsonNode input) Extracts a Long from a JSON node if it is a number.getMap(com.fasterxml.jackson.databind.JsonNode input) Converts a JSON object node into a Map of nodes.getStringValue(com.fasterxml.jackson.databind.JsonNode input) Extracts a String from a JSON node if it is textual.
-
Field Details
-
INSTANCE
Singleton instance of JsonOps to avoid unnecessary allocations. -
mapper
public final com.fasterxml.jackson.databind.ObjectMapper mapper
-
-
Method Details
-
createString
Creates aTextNodefrom a String.- Specified by:
createStringin classDynamicOps<com.fasterxml.jackson.databind.JsonNode>- Parameters:
value- The string value.- Returns:
- A JSON text node.
-
createInt
public com.fasterxml.jackson.databind.JsonNode createInt(int value) Creates anIntNodefrom an integer.- Specified by:
createIntin classDynamicOps<com.fasterxml.jackson.databind.JsonNode>- Parameters:
value- The int value.- Returns:
- A JSON integer node.
-
createLong
public com.fasterxml.jackson.databind.JsonNode createLong(long value) Creates aLongNodefrom a long.- Specified by:
createLongin classDynamicOps<com.fasterxml.jackson.databind.JsonNode>- Parameters:
value- The long value.- Returns:
- A JSON long node.
-
createFloat
public com.fasterxml.jackson.databind.JsonNode createFloat(float value) Creates aFloatNodefrom a float.- Specified by:
createFloatin classDynamicOps<com.fasterxml.jackson.databind.JsonNode>- Parameters:
value- The float value.- Returns:
- A JSON float node.
-
createDouble
public com.fasterxml.jackson.databind.JsonNode createDouble(double value) Creates aDoubleNodefrom a double.- Specified by:
createDoublein classDynamicOps<com.fasterxml.jackson.databind.JsonNode>- Parameters:
value- The double value.- Returns:
- A JSON double node.
-
createBoolean
public com.fasterxml.jackson.databind.JsonNode createBoolean(boolean value) Creates aBooleanNodefrom a boolean.- Specified by:
createBooleanin classDynamicOps<com.fasterxml.jackson.databind.JsonNode>- Parameters:
value- The boolean value.- Returns:
- A JSON boolean node.
-
createList
public com.fasterxml.jackson.databind.JsonNode createList(List<com.fasterxml.jackson.databind.JsonNode> elements) Creates anArrayNodefrom a list of JSON nodes.- Specified by:
createListin classDynamicOps<com.fasterxml.jackson.databind.JsonNode>- Parameters:
elements- The list of nodes to include.- Returns:
- A JSON array node.
-
createMap
public com.fasterxml.jackson.databind.JsonNode createMap(Map<com.fasterxml.jackson.databind.JsonNode, com.fasterxml.jackson.databind.JsonNode> map) Creates anObjectNodefrom a map of JSON nodes. Keys are converted to strings viaJsonNode.asText().- Specified by:
createMapin classDynamicOps<com.fasterxml.jackson.databind.JsonNode>- Parameters:
map- The map of key-value nodes.- Returns:
- A JSON object node.
-
getStringValue
Extracts a String from a JSON node if it is textual.- Specified by:
getStringValuein classDynamicOps<com.fasterxml.jackson.databind.JsonNode>- Parameters:
input- The JSON node.- Returns:
- An Optional containing the string, or empty.
-
getIntValue
Extracts an Integer from a JSON node if it is a number.- Specified by:
getIntValuein classDynamicOps<com.fasterxml.jackson.databind.JsonNode>- Parameters:
input- The JSON node.- Returns:
- An Optional containing the integer, or empty.
-
getLongValue
Extracts a Long from a JSON node if it is a number.- Specified by:
getLongValuein classDynamicOps<com.fasterxml.jackson.databind.JsonNode>- Parameters:
input- The JSON node.- Returns:
- An Optional containing the long, or empty.
-
getFloatValue
Extracts a Float from a JSON node if it is a number.- Specified by:
getFloatValuein classDynamicOps<com.fasterxml.jackson.databind.JsonNode>- Parameters:
input- The JSON node.- Returns:
- An Optional containing the float, or empty.
-
getDoubleValue
Extracts a Double from a JSON node if it is a number.- Specified by:
getDoubleValuein classDynamicOps<com.fasterxml.jackson.databind.JsonNode>- Parameters:
input- The JSON node.- Returns:
- An Optional containing the double, or empty.
-
getBooleanValue
Extracts a Boolean from a JSON node if it is a boolean.- Specified by:
getBooleanValuein classDynamicOps<com.fasterxml.jackson.databind.JsonNode>- Parameters:
input- The JSON node.- Returns:
- An Optional containing the boolean, or empty.
-
getList
public Optional<List<com.fasterxml.jackson.databind.JsonNode>> getList(com.fasterxml.jackson.databind.JsonNode input) Converts a JSON array node into a List of nodes.- Specified by:
getListin classDynamicOps<com.fasterxml.jackson.databind.JsonNode>- Parameters:
input- The JSON node.- Returns:
- An Optional containing the list, or empty if not an array.
-
getMap
public Optional<Map<com.fasterxml.jackson.databind.JsonNode, com.fasterxml.jackson.databind.JsonNode>> getMap(com.fasterxml.jackson.databind.JsonNode input) Converts a JSON object node into a Map of nodes. Keys are wrapped inTextNodes.- Specified by:
getMapin classDynamicOps<com.fasterxml.jackson.databind.JsonNode>- Parameters:
input- The JSON node.- Returns:
- An Optional containing the map, or empty if not an object.
-
empty
public com.fasterxml.jackson.databind.JsonNode empty()Returns the representation of a null value in JSON.- Specified by:
emptyin classDynamicOps<com.fasterxml.jackson.databind.JsonNode>- Returns:
NullNode.instance.
-