繁体   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