2012-08-09 66 views
1

我試圖解析以下,並顯示出「城市,國家」一個簡單的輸出列表:jQuery的解析JSON在多個層面

{ 
"status":"success", 
"data":[ 
    {"city":"Brooklyn Park","state":"MN"}, 
    {"city":"Campbellsport","state":"WI"}, 
    {"city":"Wauwatosa","state":"WI"}, 
      ... 
    ] 
} 

這是我到目前爲止有:

var output = $.parseJSON(data); 
var list = output.data; 
$.each(list,function(){ 
    item = $.parseJSON(list); 
    console.log(list.city); 
}); 

原始數據來自回調。

回答

5

$.parseJSON將解析整個對象,你不需要解析每個元素。

var output = $.parseJSON(data); 
var list = output.data; 

$.each(list,function(i,item){ 
    console.log(item.city); 
}); 
+0

完美。知道這是愚蠢的。我會盡快選擇你的答案,讓我們... – Fluidbyte 2012-08-09 17:19:56

+0

很高興我可以幫助:-) – 2012-08-09 17:31:30

5
var output = $.parseJSON(data); 
var list = output.data; 
$.each(list,function(index, val){ 

    // within val you'll get each 
    // data object 

    console.log(val.city); 
}); 

您不需要再次解析$.each()。因爲output已經被解析,所以你可以使用output.data得到list

0

數據是一個數組,所以只需使用一個for循環

var output = $.parseJSON(data); 
var list = output.data; 
for (var i=0; i<list.length; i++){ 
    var city = list[i].city; 
    var state = list[i].state; 
    console.log(city + "," + state); 
} 
0

試試這個:

var output = $.parseJSON(data); 
var list = output.data; 

$.each(list, function() { 
    console.log(this['city']); // could also be this.city 
}); 

當你跳進任何功能如jQuery的裏面,你再切換到「這個「 - 每個」列表「中的數據都沒有正確保存到項目中。

0
success: function (response) { 

         var output = response[0].City; 



         alert(output); 

        } 
+0

我認爲這將有所幫助。如果你想獲得第一個城市,然後使用0,並繼續增加數量爲更多的城市。 – user3233312 2014-01-24 19:32:48

0

這可能有所幫助。

var json = [ 
    {"id":"1","tagName":"apple"}, 
    {"id":"2","tagName":"orange"}, 
    {"id":"3","tagName":"banana"}, 
    {"id":"4","tagName":"watermelon"}, 
    {"id":"5","tagName":"pineapple"} 
]; 

$.each(json, function(idx, obj) { 
    alert(obj.tagName); 
});