2015-09-18 60 views
-2

我正在实现JSONParsing,但它获取的是org.json.JSONException的JSONException:值true时,状态类型java.lang.String无法在高级中转换为JSONObject.Thanks。在Android中无法将字符串转换为JSONObject

这里是我的JSON字符串

{ “Upd_Post_ActivityResult”:{ “的ResponseItem”: “103_20150900021028”, “状态”: “真正的”}}

这里是JSON解析

if (result != null) { 
          try 
          { 
           JSONObject jsonObj = new JSONObject(result); 
           String jsonResult = jsonObj.toString().trim(); 
           Log.e("jsonResult ", " = " + jsonResult); 

           JSONObject json_Upd_Post_ActivityResult = jsonObj.getJSONObject("Upd_Post_ActivityResult"); 
           Log.e("getAllActivity_List ", " = " + json_Upd_Post_ActivityResult.toString()); 

           JSONObject jobj1 = json_Upd_Post_ActivityResult.getJSONObject("Status"); 
           String strStatusObj = jobj1.toString(); 
           Log.e("strStatusObj "," = " + strStatusObj); 

           if(strStatusObj.equals("true")) 
           { 
            Log.e("StartMark Url Uploaded ", "Succesfully !!!!!"); 
            Log.e("Status ", "True"); 
            int imagesArray = imgItemArray.size(); 
            Log.e("imagesArray "," = "+imagesArray); 


           } 
           else 
           { 
            Log.e("Status ","False"); 
           } 
          } 
          catch (JSONException je) 
          { 
           je.printStackTrace(); 
          } 
         } 

这里是日志错误

09-18 06:41:02.543 20427-20490/? W/System.err﹕ org.json.JSONException: Value true at Status of type java.lang.String cannot be converted to JSONObject 
09-18 06:41:02.543 20427-20490/? W/System.err﹕ at org.json.JSON.typeMismatch(JSON.java:100) 
09-18 06:41:02.543 20427-20490/? W/System.err﹕ at org.json.JSONObject.getJSONObject(JSONObject.java:613) 
09-18 06:41:02.543 20427-20490/? W/System.err﹕ at com.example.tazeen.classnkk.AddPost$7$1.doInBackground(AddPost.java:320) 
09-18 06:41:02.543 20427-20490/? W/System.err﹕ at com.example.tazeen.classnkk.AddPost$7$1.doInBackground(AddPost.java:286) 
09-18 06:41:02.543 20427-20490/? W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:288) 
09-18 06:41:02.543 20427-20490/? W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
09-18 06:41:02.543 20427-20490/? W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
09-18 06:41:02.543 20427-20490/? W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
09-18 06:41:02.543 20427-20490/? W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
09-18 06:41:02.543 20427-20490/? W/System.err﹕ at java.lang.Thread.run(Thread.java:818) 
+2

'status'是一个字符串,所以使用'json_Upd_Post_ActivityResult.getString(“Status”);' – Emil

+0

它运作良好。但是JSONObject和getString有什么不同。它也是JSONObject(“状态”)。 – androidTag

+0

考虑使用Google Gson库来简化json解析,这很好 – lubilis

回答

2

试试下面的方法:

JSONObject jobj1 = json_Upd_Post_ActivityResult.getJSONObject("Status"); 
String strStatusObj = jobj1.toString(); 

状态不是一个JSONObject。所以,而不是获得JSONObject(“状态”),你必须使用 String strStatusObj = json_Upd_Post_ActivityResult.getString("Status");

0

常E本

JSONObject jobj1 = json_Upd_Post_ActivityResult.getJSONObject("Status"); 

String strStatusObj = json_Upd_Post_ActivityResult.getString("Status"); 
0

请使用下面,让我知道无论是工作或没有

String str=json_Upd_Post_ActivityResult.getString("Status"); 
1

我已经在你的代码做一些修改,请检查。 ..

尝试 { JSONObject js onObj = new JSONObject(result); String jsonResult = jsonObj.toString()。trim(); Log.e(“jsonResult”,“=”+ jsonResult);

      JSONObject json_Upd_Post_ActivityResult = jsonObj.getJSONObject("Upd_Post_ActivityResult"); 
          Log.e("getAllActivity_List ", " = " + json_Upd_Post_ActivityResult.toString()); 

          String strStatusObj = json_Upd_Post_ActivityResult.getString("Status"); 
          Log.e("strStatusObj "," = " + strStatusObj); 
          if(strStatusObj.equals("true")) 
          { 
           Log.e("StartMark Url Uploaded ", "Succesfully !!!!!"); 
           Log.e("Status ", "True"); 
           int imagesArray = imgItemArray.size(); 
           Log.e("imagesArray "," = "+imagesArray); 


          } 
          else 
          { 
           Log.e("Status ","False"); 
          } 
         } 
         catch (JSONException je) 
         { 
          je.printStackTrace(); 
         } 
        } 
相关问题