Помогите спарсить объект из массива



  • Прошу прощения если какие-то вещи буду называть не своими именами, я ламер.

    Суть:
    Я конвертировал джисон в джаваскрипт чтобы спарсить переменную, получилось вот что:
    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
    0_1558591392430_cf2e7bbd-aec1-46dd-a51c-5d1be0554160-изображение.png
    а не просто текстом

    @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 Помогите спарсить объект из массива:
    Нет, ничего противозаконного

    Все получилось, огромное спасибо, но хотелось бы до конца разобраться:

    1. Что такое ноль в квадратных скобках? В редакторе я виже, что после пхонс надо раскрыть объект, но почему тогда мы не пишем его так же как и все остальное через точку?
    [[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 Помогите спарсить объект из массива:
    Нет, ничего противозаконного

    Все получилось, огромное спасибо, но хотелось бы до конца разобраться:

    1. Что такое ноль в квадратных скобках? В редакторе я виже, что после пхонс надо раскрыть объект, но почему тогда мы не пишем его так же как и все остальное через точку?
    [[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
    

    Спарсить все необходимые значения из массива можно через цикл


Log in to reply