@Twitch_Drops Я так решил траблу эту, у вас может получится и просто через Прокси как там же предлагали :)
https://community.bablosoft.com/topic/29731/не-получается-запустить-софт/3
У меня по сих пор, один Форум ток работает без всего :)))
@kroda в действие выполнить код
var json = JSON.parse([[NEW_VARIABLE]])
for (var i = 0; i < json.barcodes.length; i++){
if (json.barcodes[i].accessToken == "пример2"){
[[LINK]] = json.barcodes[i].link
[[PHONE]] = json.barcodes[i].phone
}}
Где в переменной [[NEW_VARIABLE]] находится ваш "ответ в виде джисона"
На выходе в переменной [[LINK]] будет 791228276b47cad415895ecca408f524
А в [[PHONE]] будет iphone7
@kroda said in Помогите разобраться с js и корявым модулем jsonpath:
@uraabk said in Помогите разобраться с js и корявым модулем jsonpath:
А в [[PHONE]] будет iphone7
Не знаю почему, но у меня крашится бас после этого кода.
Думал сначала из-за 20к объектов, но потом проверил с одним все равно креш.
Забавно, а у меня работает, с тем, что вы предоставили.
Попробуйте создать новый xml и сделать в нем два действия первое установить переменную [[NEW_VARIABLE]] с этим json и второе выполнить код.
@uraabk said in Помогите разобраться с js и корявым модулем jsonpath:
Забавно, а у меня работает, с тем, что вы предоставили.
Попробуйте создать новый xml и сделать в нем два действия первое установить переменную [[NEW_VARIABLE]] с этим json и второе выполнить код.
Все в порядке, это я допустил ошибку, из-за креша даже не сразу увидел.
На 20 к объектов этот код крашит бас.
А на 1 объекте результат что-то вроде:
{
accessToken: "пример",
created: "2019-05-20 11:05:17",
},
Не суть, смысл в том, что тоже нет кавычек.
Хорошо, тогда другой вопрос, есть ли способ выдрать велью из ключа линк, который я спарсил с помощью jpath?
Мне всего-то нужно значение линк из:
[
{
accessToken: "пример2",
created: "2018-12-09 20:26:17",
link: "791228276b47cad415895ecca408f524",
phone: "iphone7""
}
],
@kroda Сто раз прочитал, так и не понял, что у вас не так. Если вам нужно вытащить данные из готового объекта, а судя по тому что выводит JSONPath через модуль и сайт (сайт кстати почти тот же модуль использует), это есть готовый объект, с помощью модуля - делайте JSON.stringify([[ПЕРЕМЕННАЯ_С_ОБЪЕКТОМ]]) когда выбираете строку для парсинга в модуле, ну и соответственно тип expression.
UPD. имейте в виду, что для такого объекта путь будет уже другой, т.е. $.phone, $.link и т.д
@oyasumi-punpun said in Помогите разобраться с js и корявым модулем jsonpath:
stringify
Заходим на сайт:http://jsonpath.com/
вводим все из первого поста и получаем:
[
{
"created": "2018-12-09 20:26:17",
"phone": "iphone7",
"accessToken": "пример2",
"link": "791228276b47cad415895ecca408f524"
}
]
Заходим в бас и делаем все тоже самое, получаем:
[
{
accessToken: "пример2",
created: "2018-12-09 20:26:17",
link: "791228276b47cad415895ecca408f524",
phone: "iphone7""
}
],
Вы пишите :"Если вам нужно вытащить данные из готового объекта, а судя по тому что выводит JSONPath через модуль и сайт (сайт кстати почти тот же модуль использует), это есть готовый объект"
Чтобы вот этот ответ баса был объектом:
[
{
accessToken: "пример2",
created: "2018-12-09 20:26:17",
link: "791228276b47cad415895ecca408f524",
phone: "iphone7""
}
],
Нужно чтобы ключи были заключены в ковычки. Моя проблема в том, что я не понимаю как мне вытащить ключ из этого набора символов. Ваш модуль при нажатии кнопки подходит ли строка под парс модуля выводит значение ФАЛС. Повторите пожалуйста тот момент который я не понял
А именно, как мне использовать JSON.stringify([[ПЕРЕМЕННАЯ_С_ОБЪЕКТОМ]]) в модуле который не хочет работать с ответами такого типа
@kroda Прежде чем утверждать о том, что модуль неправильно работает, нужно было бы протестировать некоторые моменты.
Ключи спокойно получаются без кавычек.
Возьмите вашу JSON-строку, и установите переменную с помощью JSON.parse(переменная_со_строкой), и посмотрите как в инспекторе переменных выглядит ваш JSON. Ни у каких ключей в инспекторе никогда нет кавычек.
Однако, если вы попробуете сделать вывод в лог JSON.stringify(объект_json), то увидите, что кавычки есть и это обычный валидный JSON. Какой ключ вам нужно вытащить? Например
$.barcodes[?(@.accessToken=="пример2")].[*]
Выдаст массив со списком ключей для данного объекта
@oyasumi-punpun said in Помогите разобраться с js и корявым модулем jsonpath:
Ключи спокойно получаются без кавычек.
Да, вы правы, я совсем забыл что в js нет ковычек, но это не помешало мне не спарсить даже методом через жс.
У ключей джисона ковычки на месте, видимо я все это время думал об этом, говоря про другое, это моя вина.
Насчет JSON.stringify, все получилось, ура. Вот я об этом и говорю с самого первого
поста. Зачем работая с джисон массивом через синтаксис предназначенный только для джисона мне необходимо в случае поочередного парса возвращать жс обратно в джисон. Не проще было бы сделать для таких людей как я(ноль в программировании, тем более в жс) как на сайте, тоесть из джисона приходит ответ в виде джисона, а не в виде жс.
Я хотел по конкретному значению токена найти кокретное значение линк.
Если покажите как это сделать за 1 парс (а не как у меня сейчас через костыль обратного возвращения в джисон stringify) командой $.barcodes[?(@.accessToken=="пример2")] (что тут дальше написать?)
Буду очень признателен!
@kroda said in Помогите разобраться с js и корявым модулем jsonpath:
$.barcodes[?(@.accessToken=="пример2")]
$.barcodes[?(@.accessToken=="пример2")].link
Через экшен 'Получить значение' - получите на выходе значение 'link' у 'barcode' c токеном, равным 'пример2'.
@oyasumi-punpun said in Помогите разобраться с js и корявым модулем jsonpath:
Через экшен 'Получить значение' - получите на выходе значение 'link' у 'barcode' c токеном, равным 'пример2'.
Не успел изменить сообщение, уже успел сам понять
Огромное спасибо!