簡體   English   中英

從PHP Web服務解析JSON對象時出錯

[英]Error parsing JSON Object from PHP web service

我似乎從我的PHP Web服務中獲取了不完整的JSON對象。 我的PHP代碼如下:

<?php
define('IEM_PATH', '../admin/com');
require_once('../admin/includes/config.php');
require_once('../admin/com/lib/IEM.class.php');
require_once ('../admin/com/lib/IEM/DBFACTORY.class.php');
require_once ('../admin/com/lib/IEM/baseAPI.class.php');
require_once ('../admin/com/lib/API/USERS.class.php');
require_once ('../admin/com/lib/IEM/baseRecord.class.php');
require_once ('../admin/com/lib/record/Users.class.php');

    function GetLists($userid = 0, $getUnconfirmedCount = false) {

        $userid = $_REQUEST['userID'];
        if (!$userid) {
        trigger_error('User object has no user id as parameter.', E_USER_NOTICE);
            return false;
        }


        if (!$userid) {
            $userid = $this->userid;
        }

        require_once('../admin/functions/api/lists.php');

        $listapi = new Lists_API();
        $returnA =  $listapi->GetListByUserID($userid, $getUnconfirmedCount);
        $returnResult1 = array();
            foreach ($returnA as $key => $value) { 
                //$lists[] = $key;
                $returnResult["contactList"][] = array("listID" => $returnA[$key]['listid'], "name" => $returnA[$key]['name']);
            }
       $returnResult["success"] = 1;
       echo json_encode($returnResult);
    }
    GetLists();

但是,當我嘗試檢索結果時,我的logcat僅顯示:

E/JSON Parser: Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
W/System.err: org.json.JSONException: No value for success

通過執行日志記錄,我的android返回了我的JSON對象,如下所示

D/Returned JSON: {"androidid":"1"}

從這些代碼

// getting JSON response from PHP web service
JSONObject returnedJSONObj = listsJSONParser.makeHttpRequest(Constant.URL
                    + "RetrieveList.php", "GET", params);

Log.d("Returned JSON ", String.valueOf(returnedJSONObj));

success = returnedJSONObj.getInt("success");

我不明白為什么當我的PHP確實根據代碼返回一個JSON數組以及成功值時,沒有成功的價值,但是android studio java代碼未在JSON對象中檢測到這些值。 我在這里做錯了什么?

你應該修改你的android代碼

success = returnedJSONObj.getInt("success");

success = returnedJSONObj.getInt("androidid");

問題是您的php文件有問題,因此,它返回錯誤的字符串而不是返回JSON對象。 如果需要,請確保將正確的POST或GET值發送到URL,或者檢查數據庫錯誤。 嘗試記錄來自php服務器的inputstream,以查看其發送的完整錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM