Доступ к объекту внутри массива - Javascript - PullRequest
0 голосов
/ 08 марта 2019

Вот так выглядит мое тело ответа. Его хранят в переменной, и когда я использую console.log (body) получаю следующее.

[
   {
      "key1":"value1",
      "key2":"value2",
      "key3":"value3"
   }
]

Я пытаюсь получить доступ к «ключу 3» с помощью следующего

console.log(body[0].key3) 

Я не определен. Я не уверен, что здесь не так. Если я просто сделаю

console.log(body[0])

я получаю строку [

Спасибо за вашу помощь здесь.

Ответы [ 2 ]

1 голос
/ 08 марта 2019

Объяснение проблемы

Ваш JS просматривает свойство определенного символа:

Посмотрите на следующий пример, который поможет продемонстрировать, что происходит:

const string = 'Hello';
console.log(string[0] === 'H'); // true
console.log('H'.key3 === undefined); // true

Решение

Вам необходимо JSON.parse строка:

const body = `
[
   {
      "key1":"value1",
      "key2":"value2",
      "key3":"value3"
   }
]
`;

const parsed = JSON.parse(body);
console.log(parsed[0].key3);
1 голос
/ 08 марта 2019

body звучит так, как будто это строка - JSON.parse это для объекта:

var body = '[{"key1": "value1","key2": "value2","key3": "value3"}]';
console.log(body[0]);
body = JSON.parse(body);
console.log(body[0].key3);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...