Вопрос:Дополнительный JsonPath с помощью Jayway
У меня есть служба, которая принимает в JSON
строку в качестве входных данных. Схема JSON
отличается каждый раз, когда некоторые поля не всегда присутствуют. Как я могу запросить значения этих полей с помощью Jayway's JsonPath
, когда они присутствуют?
Что я пробовал:
Я использовал Option.DEFAULT_PATH_LEAF_TO_NULL
в 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);
}
}
}
Это должно сделать JsonPath.read()
возвращение null
если путь не найден, однако мой код до сих пор бросает:
com.jayway.jsonpath.PathNotFoundException: Отсутствует pr работа в пути $ ['somepath']
, когда я даю ему несуществующий путь. Кто-нибудь знает, что может быть причиной этого?