Не могу получить доступ к свойствам объекта после JSON.parse () - PullRequest
0 голосов
/ 01 сентября 2018

Моя функция принимает строку, содержащую объект JSON из RESTful API.

Например: "[{"user":"Nate A.","time":"2018-08-31T21:26:14.432Z"},{"user":"Nate A.","time":"2018-08-31T21:26:27.567Z"}]"

Я бы хотел пройтись по объектам в этом массиве. Так что я делаю

var json = JSON.parse(string);
json.foreach(function(user) {
    console.log(user['time'];
}

Когда я console.log () объекта, все выглядит правильно. Но когда я пытаюсь получить доступ к таким свойствам, как console.log(json.name) или console.log(json['name']), я получаю undefined. Я точно знаю, что я получаю доступ к объекту после JSON.parse и не пытаюсь получить атрибут строки. Что дает?

var otherUsers = JSON.parse(this.responseText);
    otherUsers.forEach(user => {
        console.log(user['name']); // undefined
        console.log(user.name); // undefined
        console.log(JSON.stringify(user)); // [{"user":"Nate A.","time":"2018-08-31T21:26:14.432Z"},{"user":"Nate A.","time":"2018-08-31T21:26:27.567Z"}]
    }

Спасибо за любые советы!

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018

Может быть, это помогает, нет имени свойства, но ваш код правильный.

var str = '[{"user":"Nate A.","time":"2018-08-31T21:26:14.432Z"},{"user":"Nate A.","time":"2018-08-31T21:26:27.567Z"}]'


var arr = JSON.parse(str);

arr.forEach(o => {
    console.log(o.name)//<-- undefined because there is no "name" property

    //both works 
    console.log(o.user)
    console.log(o['user'])

    console.log(o.time)
});
0 голосов
/ 01 сентября 2018

Как сказано в комментарии, вы пытаетесь получить доступ к свойству name объекта, но его не существует.

for(user of json){
  console.log(user.user)
  console.log(user.time)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...