Я смог решить эту проблему после того, как понял разницу между определенными и неопределенными путями. Jayway github README указывает, что следующее сделает путь неопределенным и вернет список:
При оценке пути вам необходимо понять концепцию, когда
путь определен. Путь неопределен, если он содержит:
..
- оператор глубокого сканирования
?(<expression>)
- выражение
[<number>, <number> (, <number>)]
- несколько индексов массива Неопределенные пути
всегда возвращает список (представленный текущим JsonProvider).
Мой JSON выглядел следующим образом:
{
"Version":"14",
"Items":[
{"data": {"body": "[이데일리 ... \r\n",
"mimeType": "text/plain",
"language": "ko",
"headline": "국방부 \"軍 ... 중단\"",
"id": "1"}
},
{"data": {"body": "[이데일리 ... \r\n",
"mimeType": "text/plain",
"language": "ko",
"headline": "국방부 \"軍 ... 중단\"",
"id": "2"}
...
}
]
}
Этот селектор пути JSON, который я использовал ($.data.headline
), не получил значения, как я ожидал. Вместо этого он возвратил нулевые значения.
Изменение его на $.Items[*].data.headline
или $..data.headline
возвращает список каждого заголовка.