Parsing a 2-dimensional JSON array in Javascript

I have a two-dimensional JSON array in which each element contains several attributes. The example below is intentionally simplified:

var map_data = { "1":
                      {"1":{"name":"aa"},"2":{"name":"bb"}},
                 "2":
                      {"1":{"name":"cc"},"2":{"name":"dd"}}
               };

I am trying to parse the data but .lengthnot working:

for(x=1; x<=map_data.length; x++) { 
    for(y=1; y<=map_data[x].length; y++) {
        // CODE 
    }
}

Many, many thanks!

+3
source share
5 answers

It is not an array, they are simple objects, so you cannot use a property length.

You need to use the operator for...in:

for(var x in map_data) { 
  if (map_data.hasOwnProperty(x))
    for(var y in map_data[x]) {
      if (map_data[x].hasOwnProperty(y)) {
        // CODE
      }
    }
}

hasOwnProperty , , , - (, JavaScript) Array.prototype Object.prototype, .

, .

"" :

[
 [{"name":"aa"},{"name":"bb"}],
 [{"name":"cc"},{"name":"dd"}]
]

, length .

+7

map_data - , for/in:

for (var x in map_data) {
  // check for hasOwnProperty omitted for simplicity.
  for (var y in map_data[x]) {
    // CODE.
  }
}

JSON [a,b,c] {"0":a,"1":b,"2":c}.

+2

hasOwnProperty , , .

for(var i in map_data){
    if(map_data.hasOwnProperty(i)){
        for(var j in map_data[i]){
            if(map_data[i].hasOwnProperty(j)){
                /*do whatever you want with map_data[i][j]*/
            }
        }
    }
}
+2

for .. in:

for (var m in map_data) {
     // ...
}

, , " JSON", . JSON - JS.

0

-, # javascript:

#:

List<List<string>>  list_array = new List<List<string>>();

JavaScriptSerializer jss = new JavaScriptSerializer();
string _myJSONstring = jss.Serialize(list_array); 

/* list_array , , _myJSONstring, : "[[" XX "," AAAA "], [" YY "," BBBB "]]" */

JavaScript:

, #:

var a = JSON.parse(array);
    for (var t = 0; t < array.length; t++) {
        for (v = 0; v < array[t].length; v++) {
            alert(array[t][v]);
        }
    }
0

Source: https://habr.com/ru/post/1737936/


All Articles