Browse Source

Support convert normal object as parsed json tree

pull/724/head
MoonFruit 4 years ago
parent
commit
ec1f268cee
No known key found for this signature in database
GPG Key ID: 86EE2A2C61AB27B3
  1. 3
      json-path/src/main/java/com/jayway/jsonpath/internal/ParseContextImpl.java
  2. 5
      json-path/src/main/java/com/jayway/jsonpath/spi/json/GsonJsonProvider.java
  3. 5
      json-path/src/main/java/com/jayway/jsonpath/spi/json/JacksonJsonNodeJsonProvider.java
  4. 10
      json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonProvider.java

3
json-path/src/main/java/com/jayway/jsonpath/internal/ParseContextImpl.java

@ -28,7 +28,8 @@ public class ParseContextImpl implements ParseContext {
@Override
public DocumentContext parse(Object json) {
notNull(json, "json object can not be null");
return new JsonContext(json, configuration);
Object obj = configuration.jsonProvider().parse(json);
return new JsonContext(obj, configuration);
}
@Override

5
json-path/src/main/java/com/jayway/jsonpath/spi/json/GsonJsonProvider.java

@ -119,6 +119,11 @@ public class GsonJsonProvider extends AbstractJsonProvider {
return unwrapped;
}
@Override
public Object parse(Object object) throws InvalidJsonException {
return object instanceof JsonElement ? object : gson.toJsonTree(object);
}
@Override
public Object parse(final String json) throws InvalidJsonException {
return PARSER.parse(json);

5
json-path/src/main/java/com/jayway/jsonpath/spi/json/JacksonJsonNodeJsonProvider.java

@ -45,6 +45,11 @@ public class JacksonJsonNodeJsonProvider extends AbstractJsonProvider {
this.objectMapper = objectMapper;
}
@Override
public Object parse(Object object) throws InvalidJsonException {
return object instanceof JsonNode ? object : objectMapper.valueToTree(object);
}
@Override
public Object parse(String json) throws InvalidJsonException {
try {

10
json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonProvider.java

@ -23,6 +23,16 @@ public interface JsonProvider {
static final Object UNDEFINED = new Object();
/**
* Convert the given object as a parsed json object
* @param object object to parse
* @return The parsed json object
* @throws InvalidJsonException
*/
default Object parse(Object object) throws InvalidJsonException {
return object;
}
/**
* Parse the given json string
* @param json json string to parse

Loading…
Cancel
Save