Come creare JSONArray corretto in Java usando JSONObject

come posso creare un object JSON come il seguente, in Java usando 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"} ] } 

Ho trovato molti esempi, ma non la mia esatta stringa JSONArray.

Ecco un codice che utilizza java 6 per iniziare:

 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: Dal momento che c’è stata molta confusione su put vs add qui cercherò di spiegare la differenza. In java 6 org.json.JSONArray contiene il metodo put e in java 7 javax.json contiene il metodo add .

Un esempio di ciò che utilizza il pattern builder in java 7 è simile a questo:

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

Suppongo che stai ricevendo questo JSON da un server o da un file e vuoi creare un object JSONArray al di fuori di esso.

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

Spero che questo ti aiuti 🙂

È ansible scrivere un piccolo metodo riutilizzabile per creare oggetti json personali per evitare il codice duplicato

 JSONObject getPerson(String firstName, String lastName){ JSONObject person = new JSONObject(); person .put("firstName", firstName); person .put("lastName", lastName); return person ; } public JSONObject getJsonResponse(){ JSONArray employees = new JSONArray(); employees.put(getPerson("John","Doe")); employees.put(getPerson("Anna","Smith")); employees.put(getPerson("Peter","Jones")); JSONArray managers = new JSONArray(); managers.put(getPerson("John","Doe")); managers.put(getPerson("Anna","Smith")); managers.put(getPerson("Peter","Jones")); JSONObject response= new JSONObject(); person .put("employees", employees ); person .put("manager", managers ); return response; }