Reputation: 19
I have a problem reading my Json document because I want to read a 2d array looking like this:
"map" : [ ["PARED", "PARED", "PARED", "PARED", "PARED" , "PARED" , "PARED" , "PARED" , "PARED" , "PARED"], ["PARED" , "SNOWMAN" , "ESPACIO" , "PARED" , "ESPACIO" , "ESPACIO" , "ESPACIO" , "ESPACIO" , "ESPACIO" , "PUERTA"], ["PARED" , "ESPACIO" , "SOL" , "PARED" , "PARED" , "PARED" , "ESPACIO" , "PARED" , "ESPACIO" , "PARED"], ["PARED" , "ESPACIO" , "PARED" , "PARED" , "SOL" , "ESPACIO" , "ESPACIO" , "ESPACIO" , "ESPACIO" , "PARED"], ["PARED" , "ESPACIO" , "PARED" , "ESPACIO" , "ESPACIO" , "ESPACIO" , "SOL" , "ESPACIO" , "PARED" , "PARED"], ["PARED" , "ESPACIO" , "PARED" , "PARED" , "ESPACIO" , "PARED" , "PARED" , "ESPACIO" , "PARED" , "PARED"], ["PARED" , "ESPACIO" , "ESPACIO" , "ESPACIO" , "ESPACIO" , "PARED" , "SOL" , "ESPACIO" , "ESPACIO" , "PARED"], ["PARED" , "SOL" , "PARED" , "ESPACIO" , "PARED" , "PARED" , "ESPACIO" , "ESPACIO" , "SOL" , "PARED"], ["PARED" , "ESPACIO" , "ESPACIO" , "ESPACIO" , "ESPACIO" , "ESPACIO" , "ESPACIO" , "PARED" , "ESPACIO" , "PARED"], ["PARED" , "PARED" , "PARED" , "PARED" , "PARED" , "PARED" , "PARED" , "PARED" , "PARED" , "PARED"] ]
And convert it to a "String [][] mapa;" array in Android Studio, but I don't know how to read and cast it.
I really apreciate your help.
EDIT: I tried something like this, but I don't know how to continue:
mapObject.getJSONArray("map")
EDIT2 something like that?:
JSONArray mapatest = mapObject.getJSONArray("map");
String[][] innerArray = null; for(int t = 0; t < mapatest.getCount(); t++){ innerArray[t] = mapatest.getJSONArray(t); for(int k = 0; k < innerArray.getCount(); t++){ innerArray[t][k] = mapatest.getString(k); } }
Upvotes: 0
Views: 72
Reputation: 18276
While mapObejct.getJSONArray("map") returns an array where each entry is the X of your table, each item of the array will be an Array itself (getJSONArray again) and will be your Y of the table.
The code would looks like:
map = obj.getJSONArray("map);
for(int i = 0; i < map.getCount(); i++){
innerArray = map.getJSONArray(i);
for(int k = 0; k < innerArray.getCount(); i++){
innerItem = map.getString(k);
}
}
This will navigate trought i,k where they would be your array[i][k]
EDIT: With your code:
JSONArray mapatest = mapObject.getJSONArray("map");
String[][] innerArray = null;
for(int t = 0; t < mapatest.getCount(); t++){
JSONArray innerArrayObj = mapatest.getJSONArray(t);
innerArray[t] = new String[innerArrayObj.getCount());
for(int k = 0; k < innerArrayObj.getCount(); t++){
innerArray[t][k] = innerArrayObj.getString(k);
}
}
Upvotes: 1