我似乎从我的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();
但是,当我尝试检索结果时,我的日志猫仅显示:
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
通过执行日志记录,我的安卓返回我的 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 对象中检测到这些值。我在这里做错了什么?
你应该修改你的安卓代码
success = returnedJSONObj.getInt("success");
自
success = returnedJSONObj.getInt("androidid");
问题是你的php文件有问题,所以它没有返回一个JSON对象,而是返回一个带有错误的字符串。您需要确保将正确的 POST 或 GET 值发送到 URL(如果是)或检查数据库错误。尝试记录来自 PHP 服务器的输入流,以查看它发送的完整错误