Package com.jayway.jsonpath.spi.json
Class JacksonJsonNodeJsonProvider
- java.lang.Object
-
- com.jayway.jsonpath.spi.json.AbstractJsonProvider
-
- com.jayway.jsonpath.spi.json.JacksonJsonNodeJsonProvider
-
- All Implemented Interfaces:
JsonProvider
public class JacksonJsonNodeJsonProvider extends AbstractJsonProvider
-
-
Field Summary
Fields Modifier and Type Field Description private static com.fasterxml.jackson.databind.ObjectMapper
defaultObjectMapper
protected com.fasterxml.jackson.databind.ObjectMapper
objectMapper
-
Fields inherited from interface com.jayway.jsonpath.spi.json.JsonProvider
UNDEFINED
-
-
Constructor Summary
Constructors Constructor Description JacksonJsonNodeJsonProvider()
Initialize the JacksonTreeJsonProvider with the default ObjectMapper and ObjectReaderJacksonJsonNodeJsonProvider(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
Initialize the JacksonTreeJsonProvider with a custom ObjectMapper and ObjectReader.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
createArray()
Creates a provider specific json arrayprivate com.fasterxml.jackson.databind.JsonNode
createJsonElement(java.lang.Object o)
java.lang.Object
createMap()
Creates a provider specific json objectjava.lang.Object
getArrayIndex(java.lang.Object obj, int idx)
Extracts a value from an arrayjava.lang.Object
getMapValue(java.lang.Object obj, java.lang.String key)
Extracts a value from an mapcom.fasterxml.jackson.databind.ObjectMapper
getObjectMapper()
java.util.Collection<java.lang.String>
getPropertyKeys(java.lang.Object obj)
Returns the keys from the given objectboolean
isArray(java.lang.Object obj)
checks if object is an arrayboolean
isMap(java.lang.Object obj)
checks if object is a map (i.e.int
length(java.lang.Object obj)
Get the length of an array or objectjava.lang.Object
parse(java.io.InputStream jsonStream, java.lang.String charset)
Parse the given json stringjava.lang.Object
parse(java.lang.String json)
Parse the given json stringvoid
removeProperty(java.lang.Object obj, java.lang.Object key)
Removes a value in an object or arrayvoid
setArrayIndex(java.lang.Object array, int index, java.lang.Object newValue)
Sets a value in an array.void
setProperty(java.lang.Object obj, java.lang.Object key, java.lang.Object value)
Sets a value in an objectjava.lang.Iterable<?>
toIterable(java.lang.Object obj)
Converts given array to anIterable
java.lang.String
toJson(java.lang.Object obj)
Convert given json object to a json stringprivate com.fasterxml.jackson.databind.node.ArrayNode
toJsonArray(java.lang.Object o)
private com.fasterxml.jackson.databind.node.ObjectNode
toJsonObject(java.lang.Object o)
java.lang.Object
unwrap(java.lang.Object o)
Extracts a value from a wrapper object.-
Methods inherited from class com.jayway.jsonpath.spi.json.AbstractJsonProvider
getArrayIndex
-
-
-
-
Constructor Detail
-
JacksonJsonNodeJsonProvider
public JacksonJsonNodeJsonProvider()
Initialize the JacksonTreeJsonProvider with the default ObjectMapper and ObjectReader
-
JacksonJsonNodeJsonProvider
public JacksonJsonNodeJsonProvider(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
Initialize the JacksonTreeJsonProvider with a custom ObjectMapper and ObjectReader.- Parameters:
objectMapper
- the ObjectMapper to use
-
-
Method Detail
-
getObjectMapper
public com.fasterxml.jackson.databind.ObjectMapper getObjectMapper()
-
parse
public java.lang.Object parse(java.lang.String json) throws InvalidJsonException
Description copied from interface:JsonProvider
Parse the given json string- Parameters:
json
- json string to parse- Returns:
- Object representation of json
- Throws:
InvalidJsonException
-
parse
public java.lang.Object parse(java.io.InputStream jsonStream, java.lang.String charset) throws InvalidJsonException
Description copied from interface:JsonProvider
Parse the given json string- Parameters:
jsonStream
- input stream to parsecharset
- charset to use- Returns:
- Object representation of json
- Throws:
InvalidJsonException
-
toJson
public java.lang.String toJson(java.lang.Object obj)
Description copied from interface:JsonProvider
Convert given json object to a json string- Parameters:
obj
- object to transform- Returns:
- json representation of object
-
createArray
public java.lang.Object createArray()
Description copied from interface:JsonProvider
Creates a provider specific json array- Returns:
- new array
-
createMap
public java.lang.Object createMap()
Description copied from interface:JsonProvider
Creates a provider specific json object- Returns:
- new object
-
unwrap
public java.lang.Object unwrap(java.lang.Object o)
Description copied from interface:JsonProvider
Extracts a value from a wrapper object. For JSON providers that to not wrap values, this will usually be the object itself.- Specified by:
unwrap
in interfaceJsonProvider
- Overrides:
unwrap
in classAbstractJsonProvider
- Parameters:
o
- a value holder object- Returns:
- the unwrapped value.
-
isArray
public boolean isArray(java.lang.Object obj)
Description copied from class:AbstractJsonProvider
checks if object is an array- Specified by:
isArray
in interfaceJsonProvider
- Overrides:
isArray
in classAbstractJsonProvider
- Parameters:
obj
- object to check- Returns:
- true if obj is an array
-
getArrayIndex
public java.lang.Object getArrayIndex(java.lang.Object obj, int idx)
Description copied from class:AbstractJsonProvider
Extracts a value from an array- Specified by:
getArrayIndex
in interfaceJsonProvider
- Overrides:
getArrayIndex
in classAbstractJsonProvider
- Parameters:
obj
- an arrayidx
- index- Returns:
- the entry at the given index
-
setArrayIndex
public void setArrayIndex(java.lang.Object array, int index, java.lang.Object newValue)
Description copied from interface:JsonProvider
Sets a value in an array. If the array is too small, the provider is supposed to enlarge it.- Specified by:
setArrayIndex
in interfaceJsonProvider
- Overrides:
setArrayIndex
in classAbstractJsonProvider
- Parameters:
array
- an arrayindex
- indexnewValue
- the new value
-
getMapValue
public java.lang.Object getMapValue(java.lang.Object obj, java.lang.String key)
Description copied from class:AbstractJsonProvider
Extracts a value from an map- Specified by:
getMapValue
in interfaceJsonProvider
- Overrides:
getMapValue
in classAbstractJsonProvider
- Parameters:
obj
- a mapkey
- property key- Returns:
- the map entry or
JsonProvider.UNDEFINED
for missing properties
-
setProperty
public void setProperty(java.lang.Object obj, java.lang.Object key, java.lang.Object value)
Description copied from class:AbstractJsonProvider
Sets a value in an object- Specified by:
setProperty
in interfaceJsonProvider
- Overrides:
setProperty
in classAbstractJsonProvider
- Parameters:
obj
- an objectkey
- a String keyvalue
- the value to set
-
removeProperty
public void removeProperty(java.lang.Object obj, java.lang.Object key)
Description copied from class:AbstractJsonProvider
Removes a value in an object or array- Specified by:
removeProperty
in interfaceJsonProvider
- Overrides:
removeProperty
in classAbstractJsonProvider
- Parameters:
obj
- an array or an objectkey
- a String key or a numerical index to remove
-
isMap
public boolean isMap(java.lang.Object obj)
Description copied from class:AbstractJsonProvider
checks if object is a map (i.e. no array)- Specified by:
isMap
in interfaceJsonProvider
- Overrides:
isMap
in classAbstractJsonProvider
- Parameters:
obj
- object to check- Returns:
- true if the object is a map
-
getPropertyKeys
public java.util.Collection<java.lang.String> getPropertyKeys(java.lang.Object obj)
Description copied from class:AbstractJsonProvider
Returns the keys from the given object- Specified by:
getPropertyKeys
in interfaceJsonProvider
- Overrides:
getPropertyKeys
in classAbstractJsonProvider
- Parameters:
obj
- an object- Returns:
- the keys for an object
-
length
public int length(java.lang.Object obj)
Description copied from class:AbstractJsonProvider
Get the length of an array or object- Specified by:
length
in interfaceJsonProvider
- Overrides:
length
in classAbstractJsonProvider
- Parameters:
obj
- an array or an object- Returns:
- the number of entries in the array or object
-
toIterable
public java.lang.Iterable<?> toIterable(java.lang.Object obj)
Description copied from class:AbstractJsonProvider
Converts given array to anIterable
- Specified by:
toIterable
in interfaceJsonProvider
- Overrides:
toIterable
in classAbstractJsonProvider
- Parameters:
obj
- an array- Returns:
- an Iterable that iterates over the entries of an array
-
createJsonElement
private com.fasterxml.jackson.databind.JsonNode createJsonElement(java.lang.Object o)
-
toJsonArray
private com.fasterxml.jackson.databind.node.ArrayNode toJsonArray(java.lang.Object o)
-
toJsonObject
private com.fasterxml.jackson.databind.node.ObjectNode toJsonObject(java.lang.Object o)
-
-