如何使用Json解析来自服务器的数据?

如何使用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条件并确保您传递了正确的值。

+0

谢谢。问题出在我的PHP脚本。 –