Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问Json数组中的特定元素?_Javascript_Arrays_Json - Fatal编程技术网

Javascript 如何访问Json数组中的特定元素?

Javascript 如何访问Json数组中的特定元素?,javascript,arrays,json,Javascript,Arrays,Json,我有一个Json数组,它包含以下元素: “邻接”、“数据”、“id”、“名称”。 在某些元素中,“邻接”不存在。 这是一个例子: var JsonArray = [ { "id" : "id1", "name" : "name1", "data" : { "$type" : "circle",

我有一个Json数组,它包含以下元素: “邻接”、“数据”、“id”、“名称”。 在某些元素中,“邻接”不存在。 这是一个例子:

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"
                ];
第一个和第二个元素不包含“邻接”,但第三个元素包含。 在(i=0;i如何访问第三个元素? 例如,是否有
.contain
属性?
提前感谢:)

一种方法是检查值是否为未定义的类型:

for (i = 0; i < JsonArray.length; i++) {
    var item = JsonArray[i];
    if (typeof item.adjacencies !== "undefined") {
        // item has adjacencies property
    }
}
for(i=0;i
顺便说一句:这不是一个JSON数组——它是一个Javascript数组。没有JSON对象,没有JSON数组,没有JSON nothing。唯一存在的JSON-y是纯JSON,它是一种序列化格式。

使用hasOwnProperty

所以你可以这样做

for (i = 0; i < JsonArray.length; i++){
    if( JsonArray[i].hasOwnProperty('adjacencies') ){
        //Do something here
    }
}
for(i=0;i
操作符中使用
,例如,obj//中的
'property'返回一个布尔值
,但对对象使用“in”时要小心,因为它也会遍历原型的属性。