2016-12-22 3 views
0

Ich habe eine harte Zeit mit einem JSONArray Parsen, die wie folgt aussieht:Parsing JSONArray von JSONArray in Java

{ 
    "informations": { 
    "rows_nb": 4, //max is 4 
    "report": [ 
     [ [ "BEACH", 59.35 ], [ "OCEAN", 40.65 ] ],//row1 , can be more than 2 arrays 
     [ [ "OCEAN", 70.2 ], [ "BEACH", 29.8 ] ],//row2, can be more than 2 arrays 
     [ "OCEAN", "BEACH" ],//row3 
     [ "OCEAN" ]//row4 
    ] 
    } 
} 

ich so etwas wie dies versucht, aber hat nicht funktioniert:

JSONObject JSONresult = new JSONObject(result); 
JSONObject extras = JSONresult.getJSONObject("extras"); 
JSONArray report = extras.getJSONArray("report"); 
List<ArrayList<Object[]>> report_list = new ArrayList<ArrayList<Object[]>>(); 
for (int i = 0; i < report.length(); i++) { 
    JSONArray tmp = report.getJSONArray(i); 
    ArrayList<Object[]> row = new ArrayList<Object[]>(); 
    for (int j = 0; i < tmp.length(); i++) { 
     Object[] array = {tmp.getJSONArray(i).getString(0), tmp.getJSONArray(i).getDouble(1)}; 
     row.add(array); 
    } 
    report_list.add(row); 
} 

Bitte Hilfe!

Antwort

0

Was ist der von Ihnen verwendete ObjectMapper? Unten ist das Beispiel für fasterxml.

String jsonInString = <your request>; 
ObjectMapper mapper = new ObjectMapper(); 


//JSON from file to Object 
User user = mapper.readValue(jsonInString, YourClassName.class); 
0

Sie können google gson verwenden. Dadurch wird Ihr JSON automatisch in eine Liste mit verschachtelten Listen konvertiert.

String json = "{report: [  [ [ BEACH, 59.35 ], [ OCEAN, 40.65 ] ],  [ [ OCEAN, 70.2 ], [ BEACH, 29.8 ] ],  [ OCEAN, BEACH],  [ OCEAN ] ]}"; 

Gson gson = new GsonBuilder().create(); 
Map map = gson.fromJson(json, Map.class); 
+0

Nein, ich möchte keine Bibliothek außer JSON verwenden .. – Takichiii