Доступ к данным с помощью массива JSON

У меня есть json, который выглядит так, как показано ниже (он хранится в переменной с именем message). Я пытаюсь получить доступ к последнему значению объекта json в этой иерархии — set_attributes -> row. Как я могу это сделать, пока message[message.length].set_attributes.row не работает. Я использую node.js

[
    {
        "title":"Carib",
        "buttons":
        [
            {
                "type":"show_block",
                "title":"Add to Cart",
                "block_names":["[\"Add to Cart\"]"]
            },
            {
                "type":"show_block",
                "title":"More Info",
                "block_names":["[\"Add to Cart\"]"]
            }
        ],
        "subtitle":"10 | beer | 10000",
        "image_url":"url",
        "set_attributes":{"row":"23"}
    },
    {
        "title":"Stag",
        "buttons":
        [
            {
                "type":"show_block",
                "title":"Add to Cart",
                "block_names":["[\"Add to Cart\"]"]
            },
            {
                "type":"show_block",
                "title":"More Info",
                "block_names":["[\"Add to Cart\"]"]
            }
        ],
        "subtitle":"10 | beer | 10000",
        "image_url":"url",
        "set_attributes":{"row":"24"}
    }
]
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
0
16
1

Ответы 1

Легко совершить ошибку, но я считаю, что на самом деле вам следует пытаться получить доступ к message[message.length-1] вместо message[message.length] - это с учетом того, что индексация начинается с 0, а не с 1, поэтому наибольший индекс будет на единицу позади количества элементов... Ваш текущий код будет пытаться получить доступ к элементу, который не существует, потому что указатель будет за пределами (на 1 больше, чем последний элемент)

Попробуйте внести это изменение :)

Спасибо, Майкл

попробую это, но даже когда я делаю журнал для message[0], он возвращает undefined.

Kern Elliott 07.02.2019 20:40

Вы пытались просто зарегистрировать сообщение самостоятельно? а также сообщение typeof, чтобы узнать, соответствует ли оно тому типу, который вы ожидаете

Keydose 08.02.2019 14:52

Другие вопросы по теме