在Android中,无法将字符串转换为JSONObject

时间:2015-09-18 08:50:08

标签: android

我正在实现JSONParsing,但它获得了org.json.JSONException的JSONException:在类型为java.lang.String的Status处的值true无法转换为JSONObject.Thanks in advanced。

这是我的Json String

{" Upd_Post_ActivityResult" {"的ResponseItem":" 103_20150900021028""状态":"真&# 34;}}

这是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)

4 个答案:

答案 0 :(得分:2)

尝试以下方法:

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

状态不是JSONObject。因此,您需要使用getJSONObject(" Status") String strStatusObj = json_Upd_Post_ActivityResult.getString("Status");

答案 1 :(得分:1)

我对您的代码进行了一些更改,请检查...

试                             {                                 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());

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

答案 2 :(得分:0)

更改此

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

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

答案 3 :(得分:0)

请使用以下内容告诉我它是否正常工作

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