オブジェクトのプロパティの数を見つける

私は次の JSON構造を持っています:

    {
        "codes":[
            {   
                    "id":"1",           
                    "code":{                
                        "fname":"S",
                        "lname":"K"

                }
            },
            {   
                    "id":"2",               
                    "code":{                
                        "fname":"M",
                        "lname":"D"                 
                }
            }
    ]
    }

各コードをループし、各コード内のプロパティの数を警告したい

        success: function (data) {               
            var x;
            for (x = 0; x < data.codes.length; x++){            
                alert(data.codes[x].id);//alerts the ID of each 'codes'
                alert(data.codes[x].code.length)//returns undefined
            }
    }

これはどうすればいいですか?

0

2 答え

問題は、 "コード"はオブジェクトであり、配列ではないということです。あなたは、JavaScriptのオブジェクトの長さを取得することはできません。以下のような "for in"ループでオブジェクトをループする必要があります:(警告:未テスト)。

success: function (data) {               
        var x, codeProp, propCount;
        for (x = 0; x < data.codes.length; x++){            
            alert(data.codes[x].id);//alerts the ID of each 'codes'
            propCount = 0;
            for (codeProp in data.codes[x]) {
                if (data.codes[x].hasOwnProperty(codeProp) {
                    propCount += 1;
                }
            }

            alert(propCount)//should return number of properties in code
        }
}
2
追加された
if (data && rowItem.code) {

あなたが直接やりたい場合は:

if (data && data.codes[x].code) {

データが存在しない場合、data.codes.lengthは0にしかならず、forループは決して開始されません) "data"のチェックは役に立たないことに注意してください。

0
追加された
@ SK11ではなく、 data.rowItem.coderowItem.code (データにオブジェクトrowItemを持たせる方法)
追加された 著者 noob,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript