0

次の要素を持つJson配列があります: "adjacencies"、 "data"、 "id"、"name"。一部の要素では、「隣接関係」が存在しません。これは例です:

var JsonArray = [
                 {
                   "id" : "id1",
                   "name" : "name1",
                   "data" : {
                             "$type" : "circle",
                             "$color" : "#AEC43B"
                            }
                 }, //Without "adjacencies"

                 {
                   "id" : "id2",
                   "name" : "name2",
                   "data" : {
                             "$type" : "circle",
                             "$color" : "#AEC43B"
                            }
                 }, //Without "adjacencies"

                 {
                    "adjacencies": [
                                    {
                                     "nodeTo": "id1",
                                     "nodeFrom": "id3",
                                     "data": {
                                              "$color": "#416D9C"
                                             }
                                    }
                                    ],
                    "id" : "id3",
                    "name" : "name3",
                    "data" : {
                             "$type" : "circle",
                             "$color" : "#AEC43B"
                            }
                 } //With "adjacencies"
                ];

1番目と2番目の要素には「隣接」が含まれていませんが、3番目の要素には含まれています。ループfor (i = 0; i < JsonArray.length; i++)で3番目の要素にアクセスするにはどうすればよいですか?.containたとえば、物件はありますか?前もって感謝します:)

4

2 に答える 2

2

これを行う1つの方法は、値が次のタイプであるかどうかを確認することですundefined

for (i = 0; i < JsonArray.length; i++) {
    var item = JsonArray[i];
    if (typeof item.adjacencies !== "undefined") {
        // item has adjacencies property
    }
}

余談ですが、これはJSON配列ではなく、Javascript配列です。JSONオブジェクト、JSON配列、JSONはありません。存在する唯一のJSON-yは、シリアル化形式であるプレーンJSONです。

于 2012-09-24T08:13:53.607 に答える
0

hasOwnPropertyを使用します

だからあなたはこれを行うことができます

for (i = 0; i < JsonArray.length; i++){
    if( JsonArray[i].hasOwnProperty('adjacencies') ){
        //Do something here
    }
}
于 2012-09-24T08:22:04.417 に答える