Ho alcuni oggetti JSON più complessi delle rappresentazioni JSON degli oggetti java che ho. Ho metodi che costruiscono questi oggetti JSON e vorrei tornare e consumarli direttamente. Io uso la libreria org.json
per costruire i miei JSON. Potrei far funzionare il metodo GET
restituendo l'oggetto JSON come String
. È questo il modo corretto per farlo?Produzione e consumo di oggetti JSON personalizzati in Spring Servizi RESTful
@RequestMapping(value = "/getjson", method = RequestMethod.GET, produces="application/json")
@ResponseBody
public String getJson() {
JSONObject json = new JSONObject();
JSONObject subJson = new JSONObject();
subJson .put("key", "value");
json.put("key", subJson);
return json.toString();
}
Ora voglio sapere come si consuma un oggetto JSON? Come una stringa e convertirla in un oggetto JSON?
@RequestMapping(value = "/post", method = RequestMethod.POST, produces="application/json", consumes="application/json")
@ResponseBody
public String post(@RequestBody String json) {
JSONObject obj = new JSONObject(json);
//do some things with json, put some header information in json
return obj.toString();
}
È questo il modo corretto per andare sul mio problema? Sono un novizio, così cortesemente indicare tutto ciò che può essere fatto meglio. Nota: non voglio restituire POJO.