php - Android Volley 字符串响应未转换为 JsonObject
问题描述
我正在尝试从服务器的字符串响应中获取数据(在 PHP 上运行的服务器后端并发送 JsonObject 响应),然后将其转换为JsonObject以正确获取数据。但Android Volley显示以下错误:
org.json.JSONException:java.lang.String 类型的值 db 无法转换为 JSONObject
我的代码如下
public void loginFunction(String a, String b) {
progressDialog.setMessage("Please Wait, We are Inserting Your Data on Server");
progressDialog.show();
final String user_email_insert = a;
final String user_password_insert = b;
String HttpUrl = getString(R.string.server_name)+getString(R.string.log_in_api);
StringRequest stringRequest = new StringRequest(Request.Method.POST, HttpUrl,
new Response.Listener<String>() {
@Override
public void onResponse(String ServerResponse) {
progressDialog.dismiss();
try {
JSONObject person = new JSONObject(ServerResponse);
String name = person.getString("user_full_name");
String email = person.getString("user_email");
Log.d("1111",person.toString());
Toast.makeText(getApplicationContext(), name+"\n"+email, Toast.LENGTH_LONG).show();
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "Error: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
progressDialog.dismiss();
Toast.makeText(LogIn.this, volleyError.toString(), Toast.LENGTH_LONG).show();
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("user_email", user_email_insert);
params.put("user_password", user_password_insert);
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(LogIn.this);
requestQueue.add(stringRequest);
}
PHP代码是:
<?php
include "db_connection.php";
$user_email = $_POST["user_email"];
$user_password = $_POST["user_password"];
$sql = "SELECT user_password,user_full_name,user_email FROM user_info WHERE user_email ='" .$user_email. "'";
mysqli_query($con,'SET CHARACTER SET utf8');
mysqli_query($con,"SET SESSION collation_connection ='utf8_general_ci'");
$res = mysqli_query($con,$sql);
$row = mysqli_fetch_row($res);
if($user_password == $row[0]){
// echo "Login successfull".$row[1];
$myObj->user_full_name = $row[1];
$myObj->user_email = $row[2];
$myJSON = json_encode($myObj,JSON_UNESCAPED_UNICODE);
echo $myJSON;
//echo "Login successfull";
}else{
echo "Wrong password";
//header( 'Location: login_failed.php' ) ;
}
mysqli_close($con);
?>
解决方案
推荐阅读
- java - 春季启动junit测试 - ClassNotFoundException
- .htaccess - Apache htacces RewriteRule 到路径等于 uri 的文件
- scala - 返回用户定义的类类型 Scala 的列表
- java - 有向图中的顶点返回 null
- angular - 在异步循环中构建累加器对象
- deep-learning - MXnet - 启用 ROI-Pooling 的 CNN 的 ImageRecordIter 和数据增强
- java - 春季启动中的 Gmail Api:javax.mail.MessagingException:无法将套接字转换为 TLS
- max - 如何找到 CLIPS 中具有最大值的变量的 ID?
- c# - 是否可以按名称访问属性,这是一个变量?
- vba - 通过 Excel 宏更改 Web 图像