Primero de todo, deberemos tener importado el jar correspondiente al objeto JSONObject y JSONArray que se puede descargar de aquí.
Una vez añadido al classpath de nuestro proyecto, ya podemos instanciar el objeto JSONObject que mediante el método put, podemos agregar la tan conocida estructura en clave - valor, de esta manera la cosa quedaría tan simple como :
JSONObject json = new JSONObject(); json.put("firstName","John"); json.put("lastName","Doe");
La cosa quedaría así :
{ "firstName":"John" , "lastName":"Doe" }
Por último para devolverlo al cliente :
PrintWriter out = response.getWriter(); out.print(json); out.flush(); out.close();
Normalmente querremos enviar mas datos asocioados por lo que esta estructura se nos quedará corta en muchos casos, es muy típico querer adjuntar un array de json como valor para nuestra clave, en este caso haremos :
JSONObject jsonFinal = new JSONObject(); JSONObject jsonAux = new JSONObject(); jsonAux .put("firstName","John"); jsonAux .put("lastName","Doe"); JSONArray jsonArray = new JSONArray(); jsonArray .put(jsonAux ); jsonFinal .put("Group1"jsonArray,); //y para otra entrada : jsonAux = new JSONObject(); jsonAux .put("firstName","Peter"); jsonAux .put("lastName","Jones"); jsonArray = new JSONArray(); jsonArray .put(jsonAux ); jsonFinal .put("Group2"jsonArray,);De esta manera el resultado final será :
{
"Group1": [ { "firstName":"John" , "lastName":"Doe" } ],
"Group2": [ { "firstName":"Peter" , "lastName":"Jones" } ]
}
Y por último si queremos tener un json mas completo (mas de lo mismo), podríamos hacer :
JSONObject jsonFinal = new JSONObject(); JSONObject jsonAux = new JSONObject(); JSONObject jsonAux2 = new JSONObject(); JSONObject jsonAux3 = new JSONObject(); jsonAux .put("firstName","John"); jsonAux .put("lastName","Doe"); jsonAux2 .put("firstName","Anna"); jsonAux2 .put("lastName","Smith"); jsonAux3 .put("firstName","Peter"); jsonAux3 .put("lastName","Jones"); JSONArray jsonArray = new JSONArray(); jsonArray .put(jsonAux ); jsonArray .put(jsonAux2 ); jsonArray .put(jsonAux3 ); jsonFinal .put("Group1"jsonArray,); //y para otra entrada : jsonAux = new JSONObject(); jsonAux2 = new JSONObject(); jsonAux3 = new JSONObject(); jsonAux .put("firstName","Peter"); jsonAux .put("lastName","Jones"); jsonAux2 .put("firstName","Anna"); jsonAux2 .put("lastName","Smith"); jsonAux3 .put("firstName","Peter"); jsonAux3 .put("lastName","Jones"); jsonArray = new JSONArray(); jsonArray .put(jsonAux ); jsonArray .put(jsonAux ); jsonArray .put(jsonAux2 ); jsonArray .put(jsonAux3 ); jsonFinal .put("Group2"jsonArray,);
De esta manera el resultado final será :
{
"Group1": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
],
"Group2": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
Y otra vez si queremos devolverlo al cliente :
Por último para devolverlo al cliente :
PrintWriter out = response.getWriter(); out.print(jsonFinal ); out.flush(); out.close();
No hay comentarios:
Publicar un comentario