我正在寻找循环JSON数组并显示键和值。
它应该是以下帖子的简化版本,但我似乎没有正确的语法: jQuery 'each' loop with JSON array
我还看到了帖子 Get name of key in key/value pair in JSON using 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。
答案 0 :(得分:139)
您有一个表示JSON序列化JavaScript对象的字符串。在能够遍历其属性之前,需要将其反序列化为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);
});
答案 1 :(得分:18)
var obj = $.parseJSON(result);
for (var prop in obj) {
alert(prop + " is " + obj[prop]);
}
答案 2 :(得分:6)
如果是这样的一个数组,您可以直接获取值:
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'
答案 3 :(得分:6)
以下内容适用于JSON返回的字符串。它也适用于关联的数据数组。
for (var key in data)
alert(key + ' is ' + data[key]);
答案 4 :(得分:2)
解析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]);
}

答案 5 :(得分:0)
解决此问题的最佳和完美解决方案:
我尝试使用Ajax成功响应jQuery,但它不起作用,所以我发明了自己的,最后它起作用了!
Click here to see the full solution
var rs = '{"test" : "Got it perfect!","message" : "Got it!"}';
eval("var toObject = "+ rs + ";");
alert(toObject.message);