Comment créer JSONArray correct en Java en utilisant JSONObject
Comment puis-je créer un objet JSON comme le suivant, en Java à l'aide de 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"}
]
}
J'ai trouvé beaucoup d'exemples, mais pas ma chaîne exactement JSONArray.
3 answers
Voici du code utilisant java 6 pour vous aider à démarrer:
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: Depuis il y a eu beaucoup de confusion à propos de put
vs add
ici, je vais tenter d'expliquer la différence. Dans java 6 org.json.JSONArray contient la méthode put
et en java 7 javax.json contient la méthode add
.
Un exemple de ceci en utilisant le modèle builder dans java 7 ressemble à ceci:
JsonObject jo = Json.createObjectBuilder()
.add("employees", Json.createArrayBuilder()
.add(Json.createObjectBuilder()
.add("firstName", "John")
.add("lastName", "Doe")))
.build();
Je suppose que vous obtenez ce JSON à partir d'un serveur ou d'un fichier, et que vous souhaitez en créer un objet 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);
J'espère que cela aide:)
Small la méthode réutilisable peut être écrite pour créer un objet json pour éviter le code en double
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;
}