1

私は次のようなjson形式を持っています

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

私はphplikeをprint json_encode($rows);
使用しており、jquerylikeを使用してクライアントで読み取ろうとしています。

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

少し前に私の同じSOの質問があります。

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 に答える