繁体   English   中英

java.lang.String无法转换为JSONObject

[英]java.lang.String cannot be converted to JSONObject

我在从服务器检索特定数据时遇到问题,这是我的代码,任何人都有任何想法`

enter code herepublic String URL_ITEMS = "http://getdoctor.comlu.com/aa.php?name=Naveed";
private static final String TAG_FIXTURE = "checker";
private static final String TAG_MATCHID = "dphone";
private static final String TAG_TEAMA = "pphone";

这是Josn代码,请在此处输入代码。私有类GetFixture扩展了AsyncTask {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }
    @Override
    protected Void doInBackground(Void... arg) {


        ServiceHandler serviceClient = new ServiceHandler();
        Log.d("url: ", "> " + URL_ITEMS);
        String json = serviceClient.makeServiceCall(URL_ITEMS,ServiceHandler.GET);
        // print the json response in the log
        Log.d("Get match fixture resps","> " + json);
        if (json != null) {
            try {
                Log.d("try", "in the try");
                JSONObject jsonObj = new JSONObject(json);
                Log.d("jsonObject", "new json Object");
                // Getting JSON Array node
                matchFixture = jsonObj.getJSONArray(TAG_FIXTURE);
                Log.d("json aray", "user point array");
                int len = matchFixture.length();
                Log.d("len", "get array length");
                for (int i = 0; i < matchFixture.length(); i++) {
                    JSONObject c = matchFixture.getJSONObject(i);
                    String matchId = c.getString(TAG_MATCHID);
                    Log.d("matchId", matchId);
                    String teamA = c.getString(TAG_TEAMA);
                    Log.d("teamA", teamA);

                    //  hashmap for single match
                    HashMap<String, String> matchFixture = new HashMap<String, String>();
                    // adding each child node to HashMap key => value
                    matchFixture.put(TAG_MATCHID, matchId);
                    matchFixture.put(TAG_TEAMA, teamA);

                    matchFixtureList.add(matchFixture);
                }
            }
            catch (JSONException e) {
                Log.d("catch", "in the catch");
                e.printStackTrace();
            }
        } else {
            Log.e("JSON Data", "Didn't receive any data from server!");
        }
        return null;
    }'

这是我的logcat,任何人都知道我为什么收到此错误

enter code hereD/url:: > http://getdoctor.comlu.com/aa.php?name=Naveed
04-20 13:12:33.901 32106-32287/com.example.finddoctor D/Get match fixture resps: > Naveed{"checker":[{"pphone":""},{"pphone":"1"},{"pphone":"1"},{"pphone":"5415"},{"pphone":"5415"},{"pphone":"5415"}]}
04-20 13:12:33.901 32106-32287/com.example.finddoctor D/try: in the try
04-20 13:12:33.911 32106-32287/com.example.finddoctor D/catch: in the catch
04-20 13:12:33.911 32106-32287/com.example.finddoctor W/System.err: org.json.JSONException: Value Naveed of type java.lang.String cannot be converted to JSONObject
04-20 13:12:33.911 32106-32287/com.example.finddoctor W/System.err:     at org.json.JSON.typeMismatch(JSON.java:107)
04-20 13:12:33.911 32106-32287/com.example.finddoctor W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:158)
04-20 13:12:33.921 32106-32287/com.example.finddoctor W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:171)
04-20 13:12:33.921 32106-32287/com.example.finddoctor W/System.err:     at com.example.finddoctor.Doctor_notification$GetFixture.doInBackground(Doctor_notification.java:199)
04-20 13:12:33.921 32106-32287/com.example.finddoctor W/System.err:     at com.example.finddoctor.Doctor_notification$GetFixture.doInBackground(Doctor_notification.java:181)
04-20 13:12:33.921 32106-32287/com.example.finddoctor W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:185)
04-20 13:12:33.921 32106-32287/com.example.finddoctor W/System.err:     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
04-20 13:12:33.921 32106-32287/com.example.finddoctor W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:138)
04-20 13:12:33.921 32106-32287/com.example.finddoctor W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
04-20 13:12:33.931 32106-32287/com.example.finddoctor W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
04-20 13:12:33.931 32106-32287/com.example.finddoctor W/System.err:     at java.lang.Thread.run(Thread.java:1019)`

从线看来

Log.d("Get match fixture resps","> " + json);

和从logcat

获取比赛固定装置代表:> Naveed {“ checker”:[{“ pphone”:“”},{“ pphone”:“ 1”},{“ pphone”:“ 1”},{“ pphone”:“ 5415” },{“ pphone”:“ 5415”},{“ pphone”:“ 5415”}]}

您的json

Naveed{"checker":[{"pphone":""},{"pphone":"1"},{"pphone":"1"},{"pphone":"5415"},{"pphone":"5415"},{"pphone":"5415"}]}

是无效的。 从it.ie删除函数naveed有效的JSON会

{"checker":[{"pphone":""},{"pphone":"1"},{"pphone":"1"},{"pphone":"5415"},{"pphone":"5415"},{"pphone":"5415"}]}

您可以在http://jsonlint.com/上进行检查

您得到以下响应,这是不正确的json。

Naveed{"checker":[{"pphone":""},{"pphone":"1"},{"pphone":"1"},{"pphone":"5415"},{"pphone":"5415"},{"pphone":"5415"}]}

需要这样的回应

{"checker":[{"pphone":""},{"pphone":"1"},{"pphone":"1"},{"pphone":"5415"},{"pphone":"5415"},{"pphone":"5415"}]}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM