1

我有一个像

[
    {
        id: 15,
        diemdung: "a"
    },
    {
        id: "16",
        diemdung: "b",
        khoangcach: "300",
        pho: "c",
        da: [
            {
                lancan: "d",
                kc: "333"
            },
            {
                lancan: "e",
                kc: "322"
            }
        ]
    },
    ...
]

我使用 php 之类的print json_encode($rows);
,我尝试使用 jquery 在客户端读取它

$.getJSON(url,function(json){
    $.each(json,function(key, val){
        $.each(this.da,function(){
            alert(this.kc);
        });
    });
});

但它不起作用。我该怎么做?谢谢

4

3 回答 3

1

如果您的代码正常工作,您可能会收到以下错误:

TypeError: obj is undefined

这是因为外部数组中的第一个对象没有“da”属性的值。在您尝试遍历“da”属性持有的数组之前,您应该检查它是否存在。

尝试:

$.getJSON(url,function(json){
    $.each(json,function(){
        if (this.da) {
            $.each(this.da,function(){
                alert(this.kc);
            });
        }
    });
});
于 2013-03-27T02:55:32.343 回答
0
 $.each(json, function(arrayID, arrayVal) {
  //alert(arrayVal.id);
  $.each(arrayVal.da, function(daKey,daData) {
   alert(daData.kc);
  });
 });

这是我不久前的相同问题以获取更多代码

JQuery $.each() JSON 数组对象迭代

编辑以重命名一些变量以使其更清晰

于 2013-03-27T02:40:14.013 回答
0

对于 n 级层次结构

var str = '{"countries":[{"name":"USA","grandfathers":[{"gFName":"Steve","grandfathersKid":[{"gFKName": "Linda","kid": [{"name": "Steve JR", "friends": [{"name": "Kriss|John|Martin|Steven"}]}]}]}]}]}';
var obj = jQuery.parseJSON(str);
parseJsonString(obj);

功能 :

function parseJsonString(data){       
    $.each(data, function(index, val){

        if($.type(val) == 'object' || $.type(val) == 'array'){
            product.parseJsonString(val);
        }else{
            alert(index + ' - ' + val);
        }

    });
}
于 2013-03-27T03:55:17.293 回答