You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
java.lang.AssertionError
at com.google.gson.internal.bind.JsonTreeReader.peek(JsonTreeReader.java:145)
at com.google.gson.internal.bind.TypeAdapters$16.read(TypeAdapters.java:409)
at com.google.gson.internal.bind.TypeAdapters$16.read(TypeAdapters.java:406)
at com.google.gson.TypeAdapter.fromJsonTree(TypeAdapter.java:285)
at com.jayway.jsonpath.spi.mapper.GsonMappingProvider.map(GsonMappingProvider.java:66)
at com.jayway.jsonpath.internal.JsonContext.convert(JsonContext.java:192)
at com.jayway.jsonpath.internal.JsonContext.read(JsonContext.java:158)
at com.ianhattendorf.xxx.xxx.xxx(xxx.java:155)
at com.ianhattendorf.xxx.xxx.xxx(xxx.java:138)
at com.ianhattendorf.xxx.xxx.xxx(xxx.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:237)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
I'm setting the configuration like so:
static {
Configuration.setDefaults(new Configuration.Defaults() {
private final JsonProvider jsonProvider = new GsonJsonProvider(new Gson());
private final MappingProvider mappingProvider = new GsonMappingProvider(new Gson());
@Override
public JsonProvider jsonProvider() {
return jsonProvider;
}
@Override
public Set<Option> options() {
return EnumSet.of(Option.DEFAULT_PATH_LEAF_TO_NULL, Option.SUPPRESS_EXCEPTIONS);
}
@Override
public MappingProvider mappingProvider() {
return mappingProvider;
}
});
}
Parsing:
String value = JsonPath.parse("{\"M\":[]}").read("$.M[0].A[0]", String.class); // throws AssertionError here
No assertion is thrown if instead I parse as follows (removing the Class parameter):
String value = JsonPath.parse("{\"M\":[]}").read("$.M[0].A[0]");
however when there IS something there and I leave out the Class parameter:
String value = JsonPath.parse("{\"M\":\"asdf\"}").read("$.M");
I get a ClassCastException:
java.lang.ClassCastException: com.google.gson.JsonPrimitive cannot be cast to java.lang.String
at com.ianhattendorf.xxx.xxx.xxx(xxx.java:156)
at com.ianhattendorf.xxx.xxx.xxx(xxx.java:139)
at com.ianhattendorf.xxx.xxx.xxx(xxx.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:237)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
The text was updated successfully, but these errors were encountered:
I'm setting the configuration like so:
Parsing:
No assertion is thrown if instead I parse as follows (removing the Class parameter):
however when there IS something there and I leave out the Class parameter:
I get a ClassCastException:
The text was updated successfully, but these errors were encountered: