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")]
    

  • 1 Votes
    2 Posts
    402 Views
  • 0 Votes
    75 Posts
    6614 Views
  • 0 Votes
    5 Posts
    725 Views
  • BAS и сервер

    Поддержка
    0 Votes
    15 Posts
    5873 Views
  • 0 Votes
    14 Posts
    3061 Views