我在Java中调用mysql数据如下:
JSONObject jo = new JSONObject(result).getJSONArray("server_response").getJSONObject(0);
if (jo.getString("success").equals("1"))
....
PHP:
$dbhost = 'localhost';
$dbuser = 'xxxx';
$dbpass = 'xxxx';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass,'test_db');
if(! $conn ) {
$response["success"] = 0;
$response["message"] = "No connection.";
header('Content-type: application/json');
echo json_encode(array("server_response"=>$response));
exit;
}
$sql = "Select * from employee ".
"where 1=1 ";
// array for JSON response
$response = array();
$retval = mysqli_query($conn,$sql );
if(! $retval ) {
$response["success"] = 0;
$response["message"] = "User not found.";
}
else{
$response["success"] = 1;
$response["message"] = "User has been found.";
// echoing JSON response
}
header('Content-type: application/json');
echo json_encode(array("server_response"=>$response));
在浏览器中获得结果:
{“server_response”:{“成功”:1,“消息”:“已找到用户。”}}
但在我看来,没有得到正确的json格式的值,Java可以解释,因此代码不会进一步执行。
答案 0 :(得分:0)
将PHP文件的最后一行修改为:
echo json_encode(array("server_response"=>array($response)));
答案 1 :(得分:-1)
我不确定但是,在服务器响应中,带有“消息”的字符串是用括号“”写的。但是“成功”没有括号,也许Java认为它是一个int,当你试图比较一个String(“1”)它返回false。