내가 입력으로 JSON
문자열에 걸리는 서비스가있다. JSON
스키마는 일부 필드가 항상 존재하지 않을 때마다 다릅니다. Jayway의 JsonPath
이있을 때이 필드의 값을 어떻게 쿼리 할 수 있습니까?
가 나는 무엇을 시도했다 :
내가 경로가 발견되지 않는 경우 Jayway의 readme page이
Configuration config = Configuration.defaultConfiguration()
.addOptions(Option.DEFAULT_PATH_LEAF_TO_NULL);
if (JsonPath.isPathDefinite(attribute.jsonPath))
{
String value = JsonPath.using(config).parse(currentTx).read(attribute.jsonPath);
if (value != null)
{
attributeValues.add(value);
}
}
else
{
List<String> attributeValuesArray = JsonPath.using(config).parse(currentTx).read(attribute.jsonPath);
for (String value : attributeValuesArray)
{
if (value != null)
{
attributeValues.add(value);
}
}
}
을 설명 Option.DEFAULT_PATH_LEAF_TO_NULL
으로이 JsonPath.read()
반환 null
을해야 사용하지만 내 코드는 여전히 발생합니다 :
com.jayway.jsonpath.PathNotFoundException : 누락 된 pr 경로 [% s '의 somepath]
내가 존재하지 않는 경로를 지정했을 때. 아무도 이것이 무엇을 일으키는 지 알고 있습니까?