2013-09-24 81 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); 

編集:addputについての多くの混乱があったので、ここで私は違いを説明しようとします。 Java 6ではorg.json.JSONArrayにはputメソッドがあり、Java 7ではjavax.jsonにはaddメソッドが含まれています。私は、サーバーやファイルから、このJSONを取得している、とあなたはJSONArrayオブジェクトを作成するとし

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

を多分ものtry/catchにラップ? (またはメソッドにthrows文が必要です) – Lukas1

+6

JSONArrayにはputメソッドがありません。 – Jim

+1

putの代わりにaddを使う – CleanX

9

のJava 7でBuilderパターンを使用して、この例は次のようになりますそれから。

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

・ホープ、このことができます:)

関連する問題