Android - JSONObject 不起作用

Android - JSONObject doesn't work

我在 Android 上的 REST API 中使用了 HttpGet 方法,但我遇到了问题。我收到响应,但无法创建正在检索的对象。在这里我把我的 AsyncTask:

class FindCar extends AsyncTask<Integer, Integer, Void> {

   protected void onPreExecute(){
   }

   protected Void doInBackground(Integer... idCar) {

      String name = ""; 

      String url = "http://IP of my computer/project/cars/" + idCar[0].intValue();

      HttpClient httpClient = new DefaultHttpClient();

      HttpGet method = new HttpGet(url);

      method.setHeader("content-type", "application/json");

      try {
          HttpResponse resp = httpClient.execute(method);

          String respStr = EntityUtils.toString(resp.getEntity());

          Log.d("prove", respStr); //Here I get {"name":"Car1"}

          JSONObject obj = new JSONObject(respStr);

          name = obj.getString("name");

          Log.d("prove", name); //Nothing appears

      } catch (Exception ex) {
        }

          return null;
   }

   protected void onProgressUpdate(){
   }

   protected void onPostExecute(){
   }
}

为什么,如果正在检索我的响应,却没有创建对象? 我做错了什么吗?

编辑: 我做了很多证明,在我的真实代码中我有 respStr 但我复制了我之前所做的证明。对不起。

提前致谢!

我是什么?

而不是这样做:

JSONObject obj = respJSON.getJSONObject(i);

这样做:

JSONObject obj = new JSONObject(respStr);

你在 respStr 中得到了回应,但你似乎没有在任何地方使用它,你得到了 respJSON,这是谁知道的,你出于未知原因使用它,更不用说你了使用 i 不知从何而来。您应该像这样创建您的回复 JSON:

      String respStr = EntityUtils.toString(resp.getEntity());
      JSONObject obj = new JSONObject(respStr);

解决方案:

终于找到解决办法了。我做了什么?

去掉这句话:

name = obj.getString("name");

然后重写一遍(和之前完全一样)。

并且有效!太不可思议了...

如果有人知道这里发生了什么,请告诉我。我对此很感兴趣。