jQuery循环JSON数据

时间:2013-04-16 11:49:40

标签: php jquery json jsonp

我已经创建了API来从我的服务器检索数据,然后我用这样的json格式获取数据:

{
"items": [
    {
        "2013-03-28": 1771,
        "2013-03-29": 1585,
        "2013-03-30": 1582,
        "2013-03-31": 1476,
        "2013-04-01": 2070,
        "2013-04-02": 2058,
        "2013-04-03": 1981,
        "2013-04-04": 1857,
        "2013-04-05": 1806,
        "2013-04-06": 1677,
        "2013-04-07": 1654,
        "2013-04-08": 2192,
        "2013-04-09": 2028,
        "2013-04-10": 1974,
        "2013-04-11": 1954,
        "2013-04-12": 1813,
        "2013-04-13": 1503,
        "2013-04-14": 1454,
        "2013-04-15": 1957,
        "2013-04-16": 1395
    }
  ]
}

如何使用jQuery动态循环我的json数据? 我的代码:

<html>
<head></head>
<body>
<script src="jquery-1.9.1.js"></script>
<script>
   $(document).ready(function() {
    $.ajax({
        type : "GET",
        url: "myurl.php",
        cache: false,
        dataType: "jsonp",
        success:function(data){
            if(data==''){
                alert('Fail');
            }else{
                alert('Success');   
            }
        }
    })
  });
</script>
</body>
</html>

如何修改我的jQuery,以便在数据每天都会发生变化的日期之前动态获取数据,就像我在上面写的数据一样? 谢谢你......

4 个答案:

答案 0 :(得分:3)

您的示例数据需要考虑一些事项,但在您的情况下,以下内容可以解决这个问题:

var importantObject = data.items[0];
for(var item in importantObject ){
    var theDate = item;//the KEY
    var theNumber = importantObject[item];//the VALUE
}

Here is a working example

但是这一切意味着什么?......

首先,我们需要获取我们想要使用的对象,这是在{ }(表示对象)之间找到的日期/数字列表 - 数组定义为{{ 1}}。通过给出的示例,可以这样实现:

[ ]

因为var importantObject = data.items[0]; 是一个数组,我们想要的对象是该数组中的第一个项目。

然后我们可以使用foreach技术,它有效地迭代对象的所有属性。在此示例中,属性是日期值:

items

因为我们正在迭代属性,for(var item in importantObject ){ ... } 将是属性值(即日期位),所以item 日期值:

item

最后我们得到数字部分。我们可以使用属性索引的字符串值(相对于对象)来访问任何给定对象属性的值,如下所示:

var theDate = item;//the KEY

如果你已经知道你希望该值的日期,那么你可以像这样直接访问它:

var theNumber = importantObject[item];//the VALUE

答案 1 :(得分:1)

您可以使用jQuery each function执行此操作。例如:

$.each(data, function(k, v) {
    // Access items here
});

其中k是关键,v是当前处理的商品的价值。

答案 2 :(得分:1)

items

中使用jQuery.each()循环
$.each(data.items[0], function (key, value) {
    console.log(key + ": " + value);
    var date = key;
    var number = value;
});

DEMO HERE

答案 3 :(得分:1)

//获取您的详细信息。

var detail = data.items [0];

$。each(detail,function(key,val){

console.log(key + ": " + val);

}