traverse JSON when object value is an array of objects with jQuery
Here is my external JSON:
{"meta": {"limit": 20, "next": null, "offset": 0, "p开发者_开发问答revious": null, "total_count": 3}, "objects": [{"body": "this is copy text", "id": "1", "pub_date": "2011-05-04T12:23:26", "resource_uri": "/api/v1/entry/1/", "slug": "test-title-number-one", "title": "test title number one", "user": "/api/v1/user/1/"}, {"body": "this is the second test text", "id": "2", "pub_date": "2011-05-04T15:01:16", "resource_uri": "/api/v1/entry/2/", "slug": "second-test", "title": "Second test", "user": "/api/v1/user/1/"}, {"body": "item three", "id": "3", "pub_date": "2011-05-05T12:04:04", "resource_uri": "/api/v1/entry/3/", "slug": "item-3", "title": "item 3", "user": "/api/v1/user/1/"}]}
Here is my JS:
$.ajax({url: "/api/v1/entry/?format=json",
dataType: "json",
success: function(json) {
$.each(json.objects[0], function(key, value) {
alert(key + ': ' + value);
});
}
});
I can index the objects in the array with $.each(json.objects[0]..., but I need to be able to hit each object in the array and I don't know why simply $.each(json.objects... doesn't work. Thanks!
Just do a normal JS loop:
for(var i = 0; i < json.objects.length; ++i)
{
$.each(json.objects[i], function(key, value) {
alert(key + ': ' + value);
});
}
For a full jQuery solution you can do:
$.each(json.objects, function(key, value) {
$.each(json.objects[key], function(key, value){
alert(key + ': ' + value);
})
});
jsfiddle demo: http://jsfiddle.net/LGC9X/ beware, lots of alerts :P
精彩评论