json post检索到的数据无法获取

时间:2015-05-29 03:40:09

标签: jquery ajax json laravel-5

我有这个json脚本,我成功检索了由3个json对象数组(console.log)组成的数据

 $.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');

我从“console.log(响应)”得到了这个结果 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

很明显,我想做什么(基于上面引用的脚本)我想循环遍历portfolio数组,par数组和var数组的每个数组对象并得到每个“creation_date”对象但不幸的是,它不是工作。任何想法,线索,帮助,建议,推荐?

2 个答案:

答案 0 :(得分:1)

您的portfolioparvar仍为字符串。

使用JSON.parse()获取对象。

您的代码变为:

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

答案 1 :(得分:1)

由于@incognito已经说过response.portfolioresponse.parresponse.var的值是字符串。你要做的是将这些字符串解析为JSON:

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