Как l oop через простой JSON объект в Javascript - PullRequest
0 голосов
/ 07 апреля 2020

Хорошо, я знаю, что на сайте есть похожие вопросы, НО все, что я видел, это люди с массивом ВНУТРИ массива. Так что я просто ищу немного помощи по простому, который мне просто не может показаться gr asp.

JSON генерируется из файла PHP и выглядит что-то как при извлечении через AJAX: {'name' : 'Derick', 'email' : 'email@example.com'}.

Как я могу l oop с помощью этого ответа, используя Javascript, получить значение, скажем, для ключа 'name' в массив?

фрагмент кода:

response = {'name' : 'Derick', 'email' : 'email@example.com'};

Ответы [ 3 ]

1 голос
/ 07 апреля 2020

Ваш пример кода является не массивом объектов, а просто объектом. Вы бы не смогли через него получить доступ к данным. Но вместо этого обращайтесь к данным следующим образом:

response.name and response.email

Если бы ваш json объект был массивом, он бы выглядел примерно так:

responses = [
    {
      'name' : 'Derick', 
      'email' : 'email@example.com'
    },
    {
      'name' : 'John', 
      'email' : 'johnsemail@example.com'
    }    
]

И вы можете l oop через него, например:

for (x of responses) {
  console.log(x.name + ' ' + x.email);
}
1 голос
/ 07 апреля 2020

Если ответом является только данный объект, вы можете явно получить его по response['name'].

Если полученный вами ответ представляет собой массив объектов, подобный тому, который вы написали:

let result = [];
response.forEach(e => result.push(e['name']));

Должен делать то, что вы хотите.

0 голосов
/ 08 апреля 2020

Хорошо, попробовав все эти предложения, ничего не получилось. Не могу понять почему. Таким образом, решение, которое сработало для меня, заключается в следующем: (Вы также можете найти его в W3Schools в методе 'Javascript JSON parse ()).

JSON.parse(response, function (key, value) {
  if (key == "name") {
      console.log(value);
  }
});

Таким образом, в основном код анализировал ответ (даже если мой ответ должен был вернуться проанализированный. Я знаю, что он избыточен) на объект javascript и проходит через указанный объект, чтобы найти нужную пару ключ-значение.

Это сработало для меня, хотя я был неспособен, на всю жизнь, сделать вывод, что может быть не так, просто используя response.name или response ['name'] для доступа к ним.

В любом случае, надеюсь, это поможет. большое спасибо всем, кто нашел время для того, чтобы протянуть руку помощи младшему разработчику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...