Цикл и получить пару ключ / значение для массива JSON с помощью jQuery
Я ищу, чтобы перебрать массив JSON и отобразить ключ и значение.
это должна быть упрощенная версия следующего сообщения, но у меня, похоже, нет правильного синтаксиса:jQuery' каждый ' цикл с массивом JSON
Я тоже видел пост получить имя ключа в паре ключ / значение в JSON с помощью jQuery?, но также казалось, что много кода для простой деятельности.
это иллюстрирует то, что я ищу (но это не работа):
var result = '{"FirstName":"John","LastName":"Doe","Email":"johndoe@johndoe.com","Phone":"123 dead drive"}';
$.each(result, function(k, v) {
//display the key and value pair
alert(k + ' is ' + v);
});
нет обязательного требования jQuery, но он доступен. Я также могу реструктурировать JSON, если он сокращает необходимый код.
6 ответов:
у вас есть строка, представляющая сериализованный объект JavaScript JSON. Вам нужно десериализовать его обратно в объект JavaScript, прежде чем иметь возможность перебирать его свойства. В противном случае вы будете перебирать каждый отдельный символ этой строки.
var resultJSON = '{"FirstName":"John","LastName":"Doe","Email":"johndoe@johndoe.com","Phone":"123 dead drive"}'; var result = $.parseJSON(resultJSON); $.each(result, function(k, v) { //display the key and value pair alert(k + ' is ' + v); });
демо.
вы можете получить значения непосредственно в случае одного массива такой:
var resultJSON = '{"FirstName":"John","LastName":"Doe","Email":"johndoe@johndoe.com","Phone":"123 dead drive"}'; var result = $.parseJSON(resultJSON); result['FirstName']; // return 'John' result['LastName']; // return ''Doe' result['Email']; // return 'johndoe@johndoe.com' result['Phone']; // return '123'
следующее должно работать для возвращаемой строки JSON. Он также будет работать для ассоциативного массива данных.
for (var key in data) alert(key + ' is ' + data[key]);
проанализируйте строку JSON, и вы можете перебирать ключи.
var resultJSON = '{"FirstName":"John","LastName":"Doe","Email":"johndoe@johndoe.com","Phone":"123 dead drive"}'; var data = JSON.parse(resultJSON); for (var key in data) { //console.log(key + ' : ' + data[key]); alert(key + ' --> ' + data[key]); }
лучшее и идеальное решение для этой проблемы:
я попробовал jQuery с ответами на успех Ajax, но он не работает, поэтому я придумал свой собственный и, наконец, он работает!
Щелкните здесь, чтобы увидеть полное решение
var rs = '{"test" : "Got it perfect!","message" : "Got it!"}'; eval("var toObject = "+ rs + ";"); alert(toObject.message);