2016-05-02 12 views
0

Hallo, ich habe ein Problem in Bezug auf die Zusammenführung von JSONArray in JSONObject. Im Folgenden finden Sie, was meine JSONObject wie folgt aussieht:Zusammenführen von zwei JSONArray innerhalb von JSONObject in JAVA

{ 
"name":"sample.bin.png", 
"coords":{ 
      "1":{"x":[ 974, 975],"y":[154, 155}, 
      "3":{"x":[124, 125],"y":[529]}, 
      "8":{"x":[2048, 2049],"y":[548, 560, 561, 562, 563, 564 ]} 
      } 
} 

Hier habe ich Schlüssel jener JSONObjects, die ich zusammenführen möchten (innen coords) .Ich wollte x und y fusionieren jeweils in einem JSONObject mein Code:

aber Problem ist, dass ich Fehler habe bei merged.get("x").addAll(xList); und merged.get("y").addAll(yList); ich kann nicht auf die Methoden zugreifen.

Antwort

0

Gemäß Vorschlag von @cihan sieben kann mir die Antwort meines Problems bekommen, hier ist meine Lösung:

 JSONObject coordsPack = (JSONObject) outputJSON.get("coords"); 
     JSONObject merged = new JSONObject(); 
     JSONArray xList = new JSONArray(); 
     JSONArray yList = new JSONArray(); 
     for (String index : tokens) { 
      JSONObject coordXY = (JSONObject) coordsPack.get(index); 
      xList.addAll((JSONArray) coordXY.get("x")); 
      yList.addAll((JSONArray) coordXY.get("y")); 
     } 
     merged.put("x", xList); 
     merged.put("y", yList); 
     System.out.println(merged); 
1

Sie müssen die Listen zuerst ausfüllen, und Sie sollten diese folgenden Zeilen aus for Schleife herausnehmen.

 merged.get("x").addAll(xList); 
     merged.get("y").addAll(yList); 

BTW, es ist ein guter Entwurf, um Ihr Ziel zu erreichen.

+0

Dank für die Hervorhebung ich sich tatsächlich in der Lage bin zu fusionieren nach Ihrem Vorschlag. Tut mir leid, ich bin neu in Java, also bin ich mir nicht sicher, was könnte der beste Ansatz sein, was wäre der beste Ansatz? – Seeker

+0

In Java unterscheidet sich die Struktur von Sammlungen ziemlich von PHP. Sie sollten den verwendeten Datentyp genau kennen und bei bestimmten Code-Blöcken vorsichtig sein. Ich werde meine Antwort aktualisieren, um eine Annäherung an Ihr Ziel zu erreichen. –

+0

Ich sehe danke ein paar Kumpel. Ich werde versuchen, in Datatypen von Java nach mehr Details zu suchen, was Sie erwähnt haben. Danke noch einmal. – Seeker

1

Sie müssen es nicht zuerst in die JSONArray-Klasse umwandeln, wie Sie es für die 2 Zeilen oben getan haben?

+0

Das habe ich auch versucht, aber dank cihan sieben kann ich meine Antwort bekommen. Trotzdem danke für deine Eingabe. – Seeker

Verwandte Themen