使用jQuery解析JSON

时间:2014-09-29 00:05:44

标签: javascript jquery json

我有以下类型的JSON:

{
  "cards": [
    {
      "type": "Cultural",
      "number": "auto",
      "url": "http://www.url1.com"
    },
    {
      "type": "Museums",
      "number": "auto",
      "url": "http://www.url2.com"
    },
    {
      "type": "Outdoors",
      "number": "auto",
      "url": "http://www.url3.com"
    },

我怎么能用jQuery循环通过我的JSON?

3 个答案:

答案 0 :(得分:2)

假设这是你的源对象:

var data = {
  "cards": [
    {
      "type": "Cultural",
      "number": "auto",
      "url": "http://www.url1.com"
    },
    {
      "type": "Museums",
      "number": "auto",
      "url": "http://www.url2.com"
    },
    {
      "type": "Outdoors",
      "number": "auto",
      "url": "http://www.url3.com"
    }]
}

您不需要JQuery循环遍历每个项目;用一个简单的for你可以像

那样做
 for(var i=0; i<data.cards.length;i++){
    console.log(data.cards[i]);//<-- also possible: data.cards[i].type or data.cards[i].number or data.cards[i].url
 }

但是,使用.each

也可以使用JQuery
$.each(data.cards, function(index, value) { 
  console.log(index + ': ' + value); 
});

答案 1 :(得分:1)

如果您已将其解析为JSON对象,则可以使用以下命令:

var j={"cards":[....]};

$.each(j.cards, function(i,c){ 
    //c is card that you can process.
}); 

答案 2 :(得分:0)

jQuery有一个函数可以解析格式正确的json并返回一个javascript对象:

http://api.jquery.com/jquery.parsejson/

var json = '{"name":"John"}';
var myObject = $.parseJSON(json);

然后您可以使用javascript循环遍历对象:

for(var ind in myObject) { 
   var value = myObject[ind]; 
}

实际上,您确实希望确保该属性不是原型,因此请将上述内容更改为:

for(var ind in myObject) { 
    if (myObject.hasOwnProperty(ind)) {
        var value = myObject[ind];
    }
}

或者如果你想要一个全jQuery解决方案,你可以使用.each

$.each(myObject, function(ind, value) {
    console.log(value);
});