Producir y consumir objetos JSON personalizados en los servicios Spring RESTful

Tengo algunos objetos JSON que son más complejos que las representaciones JSON de los objetos java que tengo. Tengo métodos que compilan estos objetos JSON y me gustaría devolverlos y consumirlos directamente. yo sueloorg.json biblioteca para construir mis JSON. Podría obtener elGET método que funciona devolviendo el objeto JSON comoString. ¿Es esta la forma correcta de hacerlo?

@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();
}

¿Ahora quiero saber cómo consumo un objeto JSON? Como una cadena y convertirlo en un objeto 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();
    }

¿Es esta la forma correcta de solucionar mi problema? Soy un novato, por lo que señale amablemente cualquier cosa que se pueda hacer mejor. Tenga en cuenta: no quiero devolver POJOs.

Respuestas a la pregunta(4)

Su respuesta a la pregunta