2015-05-29 60 views
0

我有此JSON劇本,我成功地檢索到由JSON對象(的console.log)JSON後檢索到的數據無法提取

$.post("/sales", {dataKey: "pullout"}, function(response){ 
    if(response.success){ 
     $.each(response.portfolio, function(index, value){ 
      alert("value.creation_date"); 
     }); 
     $.each(response.var, function(index, value){ 
      alert("value.creation_date"); 
     }); 
     $.each(response.par, function(index, value){ 
      alert("value.creation_date"); 
     }); 
    } 
}, 'json'); 

的3個陣列的數據和我從「控制檯這一結果.log(response)「 enter image description here

要麼使用」console.log(response.portfolio)「,」console.log(response.var)「或」console.log(response.par)「,我會得到我想要檢索的數據的結果。但是,如果我想用這個來解析它(見下文)

$.each(response.portfolio, function(index, value){ 
    alert("value.creation_date"); 
}); 
$.each(response.var, function(index, value){ 
    alert("value.creation_date"); 
}); 
$.each(response.par, function(index, value){ 
    alert("value.creation_date"); 
}); 

它返回我這個(參見下圖) enter image description here

所以很明顯,我想(從引用的腳本基礎上)做我想循環訪問組合數組,陣列數組和陣列的每個數組對象,並獲取每個「creation_date」對象,但不幸的是,它不工作。任何想法,線索,幫助,建議,建議?

回答

1

您的portfolio,parvar仍然是字符串。

使用JSON.parse()獲取對象。

您的代碼就變成了:

var portfolio = JSON.parse(response.portfolio); 
$.each(portfolio, function(index, value){ 
    alert(value.creation_date); 
}); 
+1

alert(「value.creation_date」);不應該沒有雙引號? – Mox

+0

@Mox,一開始看到它,但還是忘了。謝了哥們! – Incognito

+0

謝謝!像魅力一樣工作。 –

1

正如@incognito已經說過的response.portfolioresponse.parresponse.var的值是字符串。您需要做的是將這些字符串解析爲JSON:

$.each(JSON.parse(response.portfolio), function(index, value){ 
    alert("value.creation_date"); 
});