如何使用Json解析来自服务器的数据?
问题描述:
这是我的php文件。我想在android中将数据解析为JSON对象。我可以这样做吗?如何使用Json解析来自服务器的数据?
<?php
include("../include/connection.php");
$old_pass="1234";
$new_pass="123";
$re_pass="123";
$contact_no="8285663445";
$chg_pwd="select * from users where contact_no='$contact_no'";
$data=mysqli_query($conn,$chg_pwd) or die(mysqli_error($conn));
$chg_pwd1=mysqli_fetch_array($data);
$data_pwd=$chg_pwd1['password'];
if($data_pwd==$old_pass){
if($new_pass==$re_pass){
$update_pwd="update users set password='$new_pass' where contact_no='$contact_no'";
$updata=mysqli_query($conn,$update_pwd) or die(mysqli_error($conn));
$json = array("status" => 1, "msg" => "password reset successfully");
}
else{
$json = array("status" => 0, "msg" => "Your new and Retype Password is not match!");
}
}
else
{
$json = array("status" => 0, "msg" => "Request method not accepted");
}
header('Content-type: application/json');
echo json_encode($json);
?>
这是我的android功能,我试图从服务器获得响应。
private void signupTrace(String response) throws JSONException {
JSONObject jsonObject= new JSONObject(response);
if(jsonObject.getString("status").equals("1")){
Log.e("log", "" + response);
String mesg= jsonObject.getString("msg");
Log.e("msg",""+mesg);
Toast.makeText(Change_Password.this,mesg, Toast.LENGTH_SHORT).show();
finish();
}
else if (jsonObject.getString("status").equals("0")){
String mesg= jsonObject.getString("msg");
Toast.makeText(Change_Password.this,mesg, Toast.LENGTH_SHORT).show();
}
else {
Snackbar.make(findViewById(android.R.id.content), " Server failed", Snackbar.LENGTH_LONG)
.setAction("Undo", null)
.setActionTextColor(Color.RED)
.show();
}
}
这就是我在我的logcat中得到的。
0-09 15:33:23.578 23721-25138/com.pickpamphlet.easydeals E/mapvalue {old_pass = 12345,contact_no = 8947897487,re_pass = ZXCVBNM,new_pass = ZXCVBNM}
10-09 15: 33:24.813 23721-23721/com.pickpamphlet.easydeals E/log:{“status”:0,“msg”:“请求方法不被接受”}'
答
Android代码中的JSON解析正确完成。
1234不是数据库中的密码。请检查您的情况是否正确。
if($data_pwd==$old_pass){
}
else
{
$json = array("status" => 0, "msg" => "Request method not accepted");
}
正确检查您的php条件并确保您传递了正确的值。
谢谢。问题出在我的PHP脚本。 –