2013-09-24 41 views
94

如何使用JSONObject在Java中創建類似以下的JSON對象?如何使用JSONObject在Java中創建正確的JsonArray

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

我發現了很多示例,但不是我的確切JSONArray字符串。

回答

196

下面是一個使用Java 6中,讓你開始一些代碼:

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

編輯:由於出現了很多混亂的約put VS add這裏我將試圖解釋這一差別。在java 6中org.json.JSONArray包含put方法,而在java中包含add方法。

使用生成器模式在Java 7中這樣的例子看起來是這樣的:

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

也許還包裝成的try/catch? (或者該方法必須具有語句) – Lukas1

+6

JSONArray沒有put方法。 – Jim

+1

使用add而不是put – CleanX

9

我想你是從服務器或文件得到這個JSON,你想創建一個JSONArray對象出來了。

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

希望這有助於:)

相關問題