в 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]);
Работает. Но всё таки интересно, как заставить встроенный кубик работать?