it-roy-ru.com

Цикл и получить пару ключ / значение для массива JSON с помощью jQuery

Я пытаюсь перебрать массив JSON и отобразить ключ и значение.

Это должна быть упрощенная версия следующего поста, но мне кажется, что синтаксис не правильный: цикл jQuery 'each' с массивом JSON

Я также видел сообщение Получить имя ключа в паре ключ/значение в JSON с помощью jQuery?, но это также выглядело как много кода для простой деятельности.

Это иллюстрирует то, что я ищу (но это не работает):

var result = '{"FirstName":"John","LastName":"Doe","Email":"[email protected]","Phone":"123 dead drive"}';
$.each(result, function(k, v) {
             //display the key and value pair
            alert(k + ' is ' + v);
        });

Не существует обязательного требования jQuery, но оно доступно. Я также могу реструктурировать JSON, если он сокращает необходимый код.

58
JStark

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

var resultJSON = '{"FirstName":"John","LastName":"Doe","Email":"[email protected]","Phone":"123 dead drive"}';
var result = $.parseJSON(resultJSON);
$.each(result, function(k, v) {
    //display the key and value pair
    alert(k + ' is ' + v);
});

Живая демоверсия .

139
Darin Dimitrov
var obj = $.parseJSON(result);
for (var prop in obj) {
    alert(prop + " is " + obj[prop]);
}
18
xdazz

Следующее должно работать для возвращаемой строки JSON. Это также будет работать для ассоциативного массива данных.

for (var key in data)
     alert(key + ' is ' + data[key]);
6
Smith

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

var resultJSON = '{"FirstName":"John","LastName":"Doe","Email":"[email protected]","Phone":"123 dead drive"}';
var result = $.parseJSON(resultJSON);
result['FirstName']; // return 'John'
result['LastName'];  // return ''Doe'
result['Email']; // return '[email protected]'
result['Phone'];  // return '123'
6
Oskar

Разобрать строку JSON, и вы можете перебрать ключи.

var resultJSON = '{"FirstName":"John","LastName":"Doe","Email":"[email protected]","Phone":"123 dead drive"}';
var data = JSON.parse(resultJSON);

for (var key in data)
{
    //console.log(key + ' : ' + data[key]);
    alert(key + ' --> ' + data[key]);
}
2
mythicalcoder

Лучшее и идеальное решение для этой проблемы:

Я попробовал jQuery с ответами об успехе Ajax, но он не работает, поэтому я изобрел свой собственный и, наконец, он работает!

Нажмите здесь, чтобы увидеть полное решение

var rs = '{"test" : "Got it perfect!","message" : "Got it!"}';
eval("var toObject = "+ rs + ";");
alert(toObject.message);
0
user1644502