【问题标题】:Iterate JSON Response in Jquery在 Jquery 中迭代 JSON 响应
【发布时间】:2012-01-03 23:55:44
【问题描述】:

我是 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>data 和 div1>address、div2>data 和 div2>address。谁能帮帮我?

【问题讨论】:

标签: jquery json


【解决方案1】:

使用 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>数据 => obj.div1.data;

div1>地址 => obj.div1.address;

div2>数据 => obj.div2.data;

div2>地址 => bj.div2.address;

【讨论】:

    【解决方案2】:

    编辑:这里相同的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>数据,(非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

    【讨论】:

      【解决方案3】:

      循环访问还是直接访问?

      $.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/

      【讨论】:

        【解决方案4】:

        最简单的方法是简单地解析 JSON 并直接与生成的对象对话。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-05-01
          • 2015-05-15
          • 1970-01-01
          • 2020-01-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多