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 @Override
public DocumentContext parse(Object json) { public DocumentContext parse(Object json) {
notNull(json, "json object can not be null"); 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 @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; return unwrapped;
} }
@Override
public Object parse(Object object) throws InvalidJsonException {
return object instanceof JsonElement ? object : gson.toJsonTree(object);
}
@Override @Override
public Object parse(final String json) throws InvalidJsonException { public Object parse(final String json) throws InvalidJsonException {
return PARSER.parse(json); 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; this.objectMapper = objectMapper;
} }
@Override
public Object parse(Object object) throws InvalidJsonException {
return object instanceof JsonNode ? object : objectMapper.valueToTree(object);
}
@Override @Override
public Object parse(String json) throws InvalidJsonException { public Object parse(String json) throws InvalidJsonException {
try { 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(); 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 * Parse the given json string
* @param json json string to parse * @param json json string to parse

Loading…
Cancel
Save