@joshuahutter225 Использовать только один раз работает для потоков, т.е. каждый поток берёт одну строку.
В вашем случае надо брать строку по индексу (первая строка - это 0). Создайте переменную, равную 0, она и будет регулировать взятие строки по индексу. После использования этой строки увеличьте эту переменную на 1 и возвращайтесь к взятию следующей строки.
Точно не знаю, возможно надо переводить переменную текстовика в список.
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")]