2013-09-24 13 views
94

Jak utworzyć obiekt JSON, jak poniżej, w Javie przy użyciu JSONObject?Jak utworzyć poprawne JsonArray w Javie przy użyciu JSONObject

{ 
    "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"} 
    ] 
} 

Znalazłem wiele przykładów, ale nie mój dokładnie ciąg JSONArray.

Odpowiedz

196

Oto kod używając Java 6, aby zacząć:

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: Ponieważ nie było dużo zamieszania put vs add tutaj postaram się wyjaśnić różnicę. W języku Java 6 org.json.JSONArray znajduje się metoda put, aw java 7 javax.json metoda add.

Przykładem tego przy użyciu wzorca konstruktora w Java 7 wygląda mniej więcej tak:

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

może również zawinąć w try/catch? (lub metoda musi mieć instrukcję throw) – Lukas1

+6

JSONArray nie ma metody put. – Jim

+1

użyj dodaj zamiast wstawić – CleanX

9

Przypuszczam, że dostajesz to JSON z serwera lub pliku, a chcesz utworzyć obiekt JSONArray z tego.

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); 

Nadzieja to pomaga :)

Powiązane problemy