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

  • 0 Votes
    7 Posts
    660 Views
  • Node.js и BAS

    Moved Поддержка
    0 Votes
    2 Posts
    506 Views
  • 0 Votes
    3 Posts
    708 Views
  • 0 Votes
    27 Posts
    3712 Views
  • Success и Fail =)

    Поддержка
    0 Votes
    9 Posts
    2366 Views