Loop и получить пару ключ/значение для массива JSON, используя jQuery
Я ищу цикл через массив JSON и отображаю ключ и значение.
Это должна быть упрощенная версия следующего сообщения, но я не верю в синтаксис: jQuery 'each' loop с массивом 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, если он сокращает требуемый код.
Ответы
Ответ 1
У вас есть строка, представляющая 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);
});
Живая демонстрация.
Ответ 2
var obj = $.parseJSON(result);
for (var prop in obj) {
alert(prop + " is " + obj[prop]);
}
Ответ 3
Вы можете получить значения непосредственно в случае одного массива, подобного этому:
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'
Ответ 4
Следующее должно работать для возвращаемой строки JSON. Он также будет работать для ассоциативного массива данных.
for (var key in data)
alert(key + ' is ' + data[key]);
Ответ 5
Разберите строку 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]);
}
Ответ 6
Лучшее и идеальное решение для этой проблемы:
Я попробовал jQuery с ответами на успех Ajax, но он не работает, поэтому я придумал свой собственный и, наконец, он работает!
Нажмите здесь, чтобы увидеть полное решение
var rs = '{"test" : "Got it perfect!","message" : "Got it!"}';
eval("var toObject = "+ rs + ";");
alert(toObject.message);