在Jquery中迭代JSON响应

时间:2012-01-03 15:25:39

标签: jquery json

是jquery的新手。以这种格式从php获得json响应。

{
"div1":{"data":"minute=0,hour=27,day=649,month=19K,smallSize=0, id=XXXXXXXXXX, ip=yyyyyyyyyyy<br \/>\nminute=0,hour=34,day=825,month=24K,smallSize=0, id=XXXXXXXXXX, ip=yyyyyyyyyyy<br \/>\nminute=0,hour=40,day=980,month=29K,smallSize=0, id=XXXXXXXXXX, ip=yyyyyyyyyyy<br \/>\n","address":"232323"},
"div2":{"data":"","address":"232323"},
"div3":{"data":"minute=0,hour=28,day=682,month=20K,smallSize=0, id=XXXXXXXXXX, ip=yyyyyyyyyyy<br \/>\nminute=0,hour=36,day=866,month=26K,smallSize=0, id=XXXXXXXXXX, ip=yyyyyyyyyyy<br \/>\nminute=0,hour=42,day=1019,month=30K,smallSize=0, id=XXXXXXXXXX, ip=yyyyyyyyyyy<br \/>\n","address":"232323"}
}

我如何在jquery中迭代此JSON并获取div1&gt;数据和div1&gt;地址,div2&gt;数据和div2&gt;地址。有谁可以帮助我?

4 个答案:

答案 0 :(得分:2)

使用jQuery each方法尝试此操作。

var obj = {  ... };

$.each(obj, function(key, value) {
    //key - each object in the json object
    //value - its value
});

如果它是格式良好的json字符串而不是对象,那么您需要先使用parseJSON方法解析它,然后使用它来迭代它。

   var obj = $.parseJSON(jsonString);

然后您可以直接访问所需的属性,如下所示

div1&gt; data =&gt; obj.div1.data;

div1&gt; address =&gt; obj.div1.address;

div2&gt; data =&gt; obj.div2.data;

div2&gt; address =&gt; bj.div2.address;

答案 1 :(得分:1)

编辑:此处的jQuery版本 DEMO

function viewJSON (jsonObj) {
   var divData;
   $.each (jsonObj, function (key, value) {
     divData = value; //gives me the value of div 1

     $. each (value, function (key, value) {
         console.log ('Key is ' + key + ' Value is ' + value);
     });

   });   
}

你也可以使用简单的javascript迭代来获取div1&gt;数据,(非jQuery版本)

   function viewJSON (jsonObj) {
   var divData;
   for (divKey in jsonObj) {
     divData = jsonObj [divKey]; //gives me the value of div 1

       for (dataKey in divData) {
         console.log ('Key is ' + dataKey + ' Value is ' + divData[dataKey]);
       }

     }    
   }

<强> DEMO HERE

答案 2 :(得分:0)

循环还是直接访问?

$.each(json, function(key, val) {
    console.log(key + ' ' + val.data + ' ' + val.address);
});

直接访问:

console.log(json.div1.data);
console.log(json.div1.address);
// etc

http://jsfiddle.net/karim79/CKDXU/

答案 3 :(得分:0)

最简单的方法是简单地解析JSON并直接与结果对象进行对话。

var theResponse = ...;
var obj = $.parseJSON(theResponse);
console.log(obj.div1.data);
console.log(obj.div1.address);