title: String from server cannot be converted to JSONObject?
body: <p>My server returns a JSON object via the body of an HTTP POST response, but I get the this error when my app tries to convert the string into a JSONObject:</p>
  
  <pre><code>06-02 09:05:34.380: E/JSONException_MyAppService(19913): org.json.JSONException: Value {"VALS":{"VAL1":"hello","VAL2":"hello2","VAL3":"hello3"}} of type java.lang.String cannot be converted to JSONObject
  </code></pre>
  
  <p>It looks like my server is returning a acceptable JSON encoded string, but it just won't convert to a JSONObject. I even changed the content-type of the server's response header to "application/json". Please help me fix this, I've been trying all day.</p>
  
  <p>EDIT- I use the following code:</p>
  
  <pre><code>try {
      ResponseHandler&lt;String&gt; responseHandler=new BasicResponseHandler();
      String responseBody = client.execute(post, responseHandler);
      JSONObject response=new JSONObject(responseBody);
  } catch (ClientProtocolException e) {
      e.printStackTrace();
      Log.e("ClientProtocol_"+TAG,""+e);
  } catch (ClientProtocolException e) {
      e.printStackTrace();
      Log.e("IO_"+TAG,""+e);
  } catch (ClientProtocolException e) {
      e.printStackTrace();
      Log.e("JSONException_"+TAG,""+e);
  }
  </code></pre>
  
  <p>I also tried imran khan's suggestion:</p>
  
  <pre><code>try {
      HttpResponse response = client.execute(post);
      HttpEntity entity = response.getEntity();
      if (entity != null) {
          String retSrc = EntityUtils.toString(entity); 
          // parsing JSON
          JSONObject result = new JSONObject(retSrc); //Convert String to JSON Object
          JSONArray tokenList = result.getJSONArray("VALS");
  
          JSONObject oj = tokenList.getJSONObject(0);
          String token = oj.getString("VAL1"); 
          String token1 = oj.getString("VAL2");
          String token11 = oj.getString("VAL3");  
      }
  } catch (ClientProtocolException e) {
      e.printStackTrace();
      Log.e("ClientProtocol_"+TAG,""+e);
  } catch (ClientProtocolException e) {
      e.printStackTrace();
      Log.e("IO_"+TAG,""+e);
  } catch (ClientProtocolException e) {
      e.printStackTrace();
      Log.e("JSONException_"+TAG,""+e);
  }
  </code></pre>
  
  <p>:'( :'(</p>