Действие 'Post запрос' не возвращает результат через изменение переменных, чтобы получить ответ, вам нужно вызвать действие 'Текущий Url', 'Содержание ответа', 'Статус ответа' или 'Получить заголовок' после выполнения запроса.
alt text
Прошу прощения если какие-то вещи буду называть не своими именами, я ламер.
Суть:
Я конвертировал джисон в джаваскрипт чтобы спарсить переменную, получилось вот что:
NEW_VARIABLE: {
cards: { },
contacts: {
emails: [ ],
phones: [
{
is_main: true,
phone: {
number: "НУЖНЫЙ МНЕ НОМЕР ТЕЛЕФОНА"
}
}
]
},
favorite_categories: [ ],
favorite_segment: { },
id: "ненужные цифорки",
is_actual: true,
is_email_confirmed: false,
is_favorite_categories_available: false,
is_gold: false,
is_qr_available: false,
notifications: {
ad_push: true,
call_center: true,
email: true,
push: true,
sms: true
},
person: { },
segments: [ ]
},
SAVED_CONTENT: "{"favorite_segment":{},"notifications":{"push":true,"email":true,"sms":true,"ad_push":true,"call_..."
}
Там где скобки закрыты, это я плюсы из лога не раскрыл, ибо не нужно.
Вопрос: как это спарсить кодом?
[[то что я выведу в лог]] = [[NEW_VARIABLE]]["вот сюда мне нужна переменная "number""]
@kroda said in Помогите спарсить объект из массива:
Прошу прощения если какие-то вещи буду называть не своими именами, я ламер.
Суть:
Я конвертировал джисон в джаваскрипт чтобы спарсить переменную, получилось вот что:
NEW_VARIABLE: {
cards: { },
contacts: {
emails: [ ],
phones: [
{
is_main: true,
phone: {
number: "НУЖНЫЙ МНЕ НОМЕР ТЕЛЕФОНА"
}
}
]
},
favorite_categories: [ ],
favorite_segment: { },
id: "ненужные цифорки",
is_actual: true,
is_email_confirmed: false,
is_favorite_categories_available: false,
is_gold: false,
is_qr_available: false,
notifications: {
ad_push: true,
call_center: true,
email: true,
push: true,
sms: true
},
person: { },
segments: [ ]
},
SAVED_CONTENT: "{"favorite_segment":{},"notifications":{"push":true,"email":true,"sms":true,"ad_push":true,"call_..."
}Там где скобки закрыты, это я плюсы из лога не раскрыл, ибо не нужно.
Вопрос: как это спарсить кодом?
[[то что я выведу в лог]] = [[NEW_VARIABLE]]["вот сюда мне нужна переменная "number""]
Выложите нормально полный код json строки, жалательно в теге code

а не просто текстом
@ls5stream said in Помогите спарсить объект из массива:
В выполнить код [[Имя переменной которая будет содержать результат]] = JSON.parse([[Переменная в которой номер]]).NEW_VARIABLE.phone.number
если свойство phone находится в массиве phones, то нужно указывать индекс элемента массива
@fox ```
{
NEW_VARIABLE: {
cards: {
list: [
"много цифр"
],
main: "много цифр"
},
contacts: {
emails: [
],
phones: [
{
is_main: true,
phone: {
number: "как спарсить это"
}
}
]
},
favorite_categories: [
],
favorite_segment: {
},
id: "много цифр",
is_actual: true,
is_email_confirmed: false,
is_favorite_categories_available: false,
is_gold: false,
is_qr_available: false,
notifications: {
ad_push: true,
call_center: true,
email: true,
push: true,
sms: true
},
person: {
birthday: "1991-12-11",
children: 0,
city_name: "",
first_name: "Костя",
last_name: "Лебедев",
sex: "man"
},
segments: [
]
},
@kroda said in Помогите спарсить объект из массива:
@fox ```
{ NEW_VARIABLE: { cards: { list: [ "много цифр" ], main: "много цифр" }, contacts: { emails: [ ], phones: [ { is_main: true, phone: { number: "как спарсить это" } } ] }, favorite_categories: [ ], favorite_segment: { }, id: "много цифр", is_actual: true, is_email_confirmed: false, is_favorite_categories_available: false, is_gold: false, is_qr_available: false, notifications: { ad_push: true, call_center: true, email: true, push: true, sms: true }, person: { birthday: "1991-12-11", children: 0, city_name: "", first_name: "Костя", last_name: "Лебедев", sex: "man" }, segments: [ ] },
Весь, это означает весь, чтобы можно было загрузить на https://jsoneditoronline.org/ и удобно увидеть дерево необходимых свойств
@fox said in Помогите спарсить объект из массива:
Весь, это означает весь, чтобы можно было загрузить на https://jsoneditoronline.org/ и удобно увидеть дерево необходимых свойств
Это весь запрос джисона который конвертится в джаваскрипт.
Нужен джисон?
Не проблема:
{"favorite_segment":{},"notifications":{"push":true,"email":true,"sms":true,"ad_push":true,"call_center":true},"id":"1111111111111111111111111111111111111111111111","favorite_categories":[],"is_email_confirmed":false,"is_actual":true,"is_qr_available":false,"is_favorite_categories_available":false,"contacts":{"phones":[{"phone":{"number":"+79112223332"},"is_main":true}],"emails":[]},"segments":[],"person":{"first_name":"Костя","last_name":"Лебедев","sex":"man","birthday":"1991-12-11","city_name":"","children":0},"is_gold":false,"cards":{"main":"1111111111111111111111111111111111111111111111","list":["1111111111111111111111111111111111111111111111"]}}
@kroda said in Помогите спарсить объект из массива:
@fox said in Помогите спарсить объект из массива:
Весь, это означает весь, чтобы можно было загрузить на https://jsoneditoronline.org/ и удобно увидеть дерево необходимых свойств
Это весь запрос джисона который конвертится в джаваскрипт.
Нужен джисон?
Не проблема:
{"favorite_segment":{},"notifications":{"push":true,"email":true,"sms":true,"ad_push":true,"call_center":true},"id":"1111111111111111111111111111111111111111111111","favorite_categories":[],"is_email_confirmed":false,"is_actual":true,"is_qr_available":false,"is_favorite_categories_available":false,"contacts":{"phones":[{"phone":{"number":"+79112223332"},"is_main":true}],"emails":[]},"segments":[],"person":{"first_name":"Костя","last_name":"Лебедев","sex":"man","birthday":"1991-12-11","city_name":"","children":0},"is_gold":false,"cards":{"main":"1111111111111111111111111111111111111111111111","list":["1111111111111111111111111111111111111111111111"]}}
Надеюсь это не кардер..
Смотрите, если вам нужен номер телефона +79112223332, и в массиве нужен только первый элемент, то подойдёт такой код:
[[NUMBER]] = JSON.parse([[VARIABLE]]).contacts.phones[0].phone.number
если последний элемент, то :
var json = JSON.parse([[VARIABLE]]).contacts.phones
[[NUMBER]] = json[json.length-1].phone.number
если все, то:
[[NUMBERS]] = JSON.parse([[VARIABLE]]).contacts.phones
@fox said in Помогите спарсить объект из массива:
Нет, ничего противозаконного
Все получилось, огромное спасибо, но хотелось бы до конца разобраться:
[[NUMBER]] = JSON.parse([[VARIABLE]]).contacts.phones[0].phone.number
2)Почему здесь в начале вар джисон а не имя переменной? или это для примера написано?
var json = JSON.parse([[VARIABLE]]).contacts.phones
[[NUMBER]] = json[json.length-1].phone.number
И сраузе же хочу задать последний вопрос, тоже по парсу джисона, в ответе сервера очень много раз повторяются объекты, но ключи разные:
{
"count": 19877,
"info": [
{
"created": "2018-12-09 20:24:04",
"typephone": "iphone7",
"phone": "+79111111111",
"cost": "0",
"accessToken": "111111111111111111111",
"link": "83dcd274f5f476f23379881e68545477"
},
{
"created": "2019-05-22 13:28:04",
"typephone": "iphone6",
"phone": null,
"cost": "0",
"accessToken": "22222222222222222222",
"link": "ecde8b395c7181be307cede64694d722"
}
]
}
Как спарсить строку с токеном "222222222222222222222" и например сразу же после нее строку линк или до нее кост, пхон, таймпхон, креэйтед
[[NUMBER]] = JSON.parse([[VARIABLE]]).info.accessToken (как написать ключ?) и все захватить если имя объекта для все одинаковое "info"
@kroda said in Помогите спарсить объект из массива:
@fox said in Помогите спарсить объект из массива:
Нет, ничего противозаконногоВсе получилось, огромное спасибо, но хотелось бы до конца разобраться:
- Что такое ноль в квадратных скобках? В редакторе я виже, что после пхонс надо раскрыть объект, но почему тогда мы не пишем его так же как и все остальное через точку?
[[NUMBER]] = JSON.parse([[VARIABLE]]).contacts.phones[0].phone.number
Свойство phones является массивом, через квадратные скобки я могу указать сразу индекс элемента. Так как индекс элементов массива начинается с нуля, то я просто взял первый элемент.
2)Почему здесь в начале вар джисон а не имя переменной? или это для примера написано?
var json = JSON.parse([[VARIABLE]]).contacts.phones [[NUMBER]] = json[json.length-1].phone.number
Да, по большей части здесь всё для примера :D, но согласитесь, вот такой код совсем непонятный:
[[NUMBER]] = JSON.parse([[VARIABLE]]).contacts.phones[JSON.parse([[VARIABLE]]).contacts.phones.length-1].phone.number
И сраузе же хочу задать последний вопрос, тоже по парсу джисона, в ответе сервера очень много раз повторяются объекты, но ключи разные:
{ "count": 19877, "info": [ { "created": "2018-12-09 20:24:04", "typephone": "iphone7", "phone": "+79111111111", "cost": "0", "accessToken": "111111111111111111111", "link": "83dcd274f5f476f23379881e68545477" }, { "created": "2019-05-22 13:28:04", "typephone": "iphone6", "phone": null, "cost": "0", "accessToken": "22222222222222222222", "link": "ecde8b395c7181be307cede64694d722" } ] }Как спарсить строку с токеном "222222222222222222222" и например сразу же после нее строку линк или до нее кост, пхон, таймпхон, креэйтед
[[NUMBER]] = JSON.parse([[VARIABLE]]).info.accessToken (как написать ключ?) и все захватить если имя объекта для все одинаковое "info"
Квадратные скобки свойства info говорят о том, что это массив (читай список), указать индекс элемента массива можно через квадратные скобки:
[[ACCESSTOKEN]] = JSON.parse([[VARIABLE]]).info[1].accessToken
[[LINK]] = JSON.parse([[VARIABLE]]).info[1].link
[[COST]] = JSON.parse([[VARIABLE]]).info[1].cost
или так:
var json = JSON.parse([[VARIABLE]]).info[1]
[[ACCESSTOKEN]] = json.accessToken
[[LINK]] = json.link
[[COST]] = json.cost
Спарсить все необходимые значения из массива можно через цикл