Hanady
Hanady

Reputation: 789

How to access specific elements in a Json array?

I have a Json array which has the elements below: "adjacencies", "data", "id", "name". In some elements, "adjacencies" does not exist. This is an example:

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"
                ];

The first and the second elements doesn't contain "adjacencies", but the third element does. In the loop for (i = 0; i < JsonArray.length; i++) how do I access the third element? Is there a .contain property for example? Thanks in advance:)

Upvotes: 0

Views: 1402

Answers (2)

fzaziz
fzaziz

Reputation: 697

use hasOwnProperty

So you can do this

for (i = 0; i < JsonArray.length; i++){
    if( JsonArray[i].hasOwnProperty('adjacencies') ){
        //Do something here
    }
}

Upvotes: 0

Jon
Jon

Reputation: 437854

One way to do it is by checking if the value is of type undefined:

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

As an aside: this is not a JSON array -- it's a Javascript array. There are no JSON objects, no JSON arrays, no JSON nothing. The only JSON-y thing that exists is plain JSON, which is a serialization format.

Upvotes: 2

Related Questions