Помогите спарсить объект из массива
-
Прошу прощения если какие-то вещи буду называть не своими именами, я ламер.
Суть:
Я конвертировал джисон в джаваскрипт чтобы спарсить переменную, получилось вот что:
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.parse([[Переменная в которой номер]]).NEW_VARIABLE.phone.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
Спарсить все необходимые значения из массива можно через цикл