2013-09-24 18 views
94

Wie kann ich ein JSON-Objekt wie das Folgende erstellen, in Java mit JSONObject?Wie man in JSONObject das korrekte JsonArray mit JSONObject erstellt

{ 
    "employees": [ 
     {"firstName": "John", "lastName": "Doe"}, 
     {"firstName": "Anna", "lastName": "Smith"}, 
     {"firstName": "Peter", "lastName": "Jones"} 
    ], 
    "manager": [ 
     {"firstName": "John", "lastName": "Doe"}, 
     {"firstName": "Anna", "lastName": "Smith"}, 
     {"firstName": "Peter", "lastName": "Jones"} 
    ] 
} 

Ich habe eine Menge Beispiel gefunden, aber nicht genau meine JSONArray-Zeichenfolge.

Antwort

196

Hier ist ein Code mit Java 6 für den Einstieg:

JSONObject jo = new JSONObject(); 
jo.put("firstName", "John"); 
jo.put("lastName", "Doe"); 

JSONArray ja = new JSONArray(); 
ja.put(jo); 

JSONObject mainObj = new JSONObject(); 
mainObj.put("employees", ja); 

Edit: Da gibt es eine Menge Verwirrung über put vs add hier war ich den Unterschied zu erklären versuchen. In Java 6 org.json.JSONArray enthält die put Methode und in Java 7 javax.json enthält die add Methode.

Ein Beispiel hierfür die Erbauer in Java unter Verwendung von 7 sieht in etwa wie folgt aus:

JsonObject jo = Json.createObjectBuilder() 
    .add("employees", Json.createArrayBuilder() 
    .add(Json.createObjectBuilder() 
     .add("firstName", "John") 
     .add("lastName", "Doe"))) 
    .build(); 
+3

vielleicht wickeln auch in try/catch? (oder die Methode muss throws-Anweisung haben) – Lukas1

+6

JSONArray hat keine Put-Methode. – Jim

+1

Verwendung hinzufügen statt – CleanX

9

Ich nehme an, Sie bekommen diese JSON von einem Server oder einer Datei, und Sie möchten ein JSONArray Objekt erstellen heraus.

String strJSON = ""; // your string goes here 
JSONArray jArray = (JSONArray) new JSONTokener(strJSON).nextValue(); 
// once you get the array, you may check items like 
JSONOBject jObject = jArray.getJSONObject(0); 

this helps :)

Verwandte Themen