title: Producing and consuming custom JSON Objects in Spring RESTful services
body: <p>I have some JSON Objects that are more complex than the JSON representations of the java objects I have. I have methods that build these JSON Objects and I would like to return and consume these directly. I use <code>org.json</code> library to build my JSONs. I could get the <code>GET</code> method working by returning the JSON Object as a <code>String</code>. Is this the correct way to go about it?</p>
  
  <pre><code>@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();
  }
  </code></pre>
  
  <p>Now I want to know how do I consume a JSON Object? As a string and convert it to a JSON Object?</p>
  
  <pre><code>    @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();
      }
  </code></pre>
  
  <p>Is this the correct way to go about my problem? I am a novice, so kindly point out anything that can be done better. Please note: I do not want to return POJOs.</p>