В общем нашел решение, если кому-то пригодится:
распарсить JSON в двумерный массив .sheets[0].data[*] отфильтровать двумерный массив по значению [[RESULT]] = [[PARSED_JSON_VALUES]].filter(function (e) { return (e)[0] == 'KR0601437U00 Bosch GLI 10,8 V-LI'})JPath и экранирование
-
в json есть строка, содержащая ; (точку с запятой). как её заэкранировать правильно в JSONPath? Через кубик найти значение не ищет элементы, если в строке есть такой символ.
Как пример{ "data": [ { "text": "some;text;here" }, { "text": ";test" }, { "text": "nosemicolonshere" } ] };вот такой запрос находит строку
$.data[?(@.text == 'nosemicolonshere')]а такой не находит
$.data[?(@.text == ';text')]и такой не находит
$.data[?(@.text == 'some;text;here')]Экранирование \ не помогает.
Причем онлайн-эвалуаторы тоже по разному работают - какие то находят, какие то нет.Умные люди подсказали через выполнить код делать:
const jsonData = { "data": [ { "text": "some;text;here" }, { "text": ";test" }, { "text": "nosemicolonshere" } ] }; const result = jsonData.data.filter(function(item) {return item.text === ';test'}); log(result[0]);Работает. Но всё таки интересно, как заставить встроенный кубик работать?
-
@mnail84 said in JPath и экранирование:
а такой не находит
$.data[?(@.text == ';text')]$.data[?(@.text == "\u003Btest")]