【发布时间】:2016-10-07 08:10:59
【问题描述】:
client.post("http://10.0.2.2/project/process/selectalluser.php", new AsyncHttpResponseHandler() {
@Override
public void onSuccess(String response) {
Integer contacts = controller.getContactsCount();
Log.d("Reading contacts: ", contacts+"");
System.out.println("onSuccess");
JSONArray jsonArray = new JSONArray(response);
Log.d("Reading response: ", response.length()+"");
System.out.println(response);
Toast.makeText(getApplicationContext(), "MySQL DB has been informed about Sync activity", Toast.LENGTH_LONG).show();
}
@Override
public void onFailure(int statusCode, Throwable error, String content) {
System.out.println("onFailure");
System.out.println(statusCode);
System.out.println(error);
System.out.println(content);
Toast.makeText(getApplicationContext(), "Error Occured", Toast.LENGTH_LONG).show();
}
});
然后是我的 php :
$stmt = $dbh->prepare("SELECT * FROM `admin_tbl`");
if ($stmt->execute()) {
$basicinfo = array();
if ($stmt->rowCount() > 0) {
while ($selected_row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$basicinfo[] = array(
'email' => $selected_row['email'],
'username' => $selected_row['username'],
'password' => $selected_row['password'],
'fname' => $selected_row['fname'],
'mname' => $selected_row['mname'],
'lname' => $selected_row['lname'],
'suffix' => $selected_row['suffix'],
'status' => $selected_row['status']);
}
echo json_encode($basicinfo, JSON_UNESCAPED_UNICODE);
//return $basicinfo;
} else {
echo json_encode(array(
'error' => false,
'message' => "No record found!"
));
exit;
}
}
这是我的代码,我想将字符串类型的响应转换为 JSON,这样我就可以计算那里有多少条记录。但我在JSONObject json = new JSONObject(response); 行中收到Unhandled Exception: org.json.JSONException 的错误
System.out.println(response); 行将产生如下结果:
I/System.out: [{"email":"admin@gmail.com","username":"admin","password":"admin","fname":"Bradley","mname" :"Buenafe","lname":"Dalina","suffix":"","status":"1"}]
如何正确地将这种格式的String转换成JSON
【问题讨论】: