php - android json 获取请求
问题描述
我想打印制作android登录过程的用户的textview,我首先在php中将数据转换为json格式,但是当我在android url部分输入database/show.php时,textview输入为null。
php代码:
$id=$_GET["id"];
$sql=$conn->prepare("SELECT id,name,surname,type FROM personel WHERE id='$id'");
$sql->execute();
$result=$sql->fetch(PDO::FETCH_ASSOC);
echo (json_encode($result));
Java代码:
final String url = "database/show.php";
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
if(response.equals("başarılı")) {
userId.setText(response.getString("id").toString());
userName.setText(response.getString("name"));
userSurname.setText(response.getString("surname"));
userType.setText(response.getString("type"));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "error"+error, Toast.LENGTH_SHORT).show();
}
});
// 通过你的单例类访问 RequestQueue。
MySingleton.getInstance(this).addToRequestQueue(jsonObjectRequest);
解决方案
我发现您的代码存在一些问题:
1-您没有在您的 id 中传递任何 id new JsonObjectRequest
,因此您的 php 代码可能没有 GET 任何 id。(应该是final String url = "http://127.0.0.1/database/show.php?id=234";
)
2-您将查询中的 $id 视为字符串。id 通常是一个整数。(应该是WHERE id=$id
)
3-您的查询结果将是一个数组。所以你的客户会得到一个 JSONArray,而不是 JSONObject。(应该是response.getJSONObject(0).getString("id").toString()
)
4 - 什么是if(response.equals("başarılı"))
?将 JSON 类型与 String 类型进行比较?
推荐阅读
- zsh - theme_precmd:1: vcs_info: 未找到 Oh-my-zsh 的函数定义文件
- python - Qslider 不会在 PyQt5 中传递参数
- python - Selenium 从密码中插入随机字母
- android-studio - HLS 在以下代码中无法在 exoplayer 中工作
- javascript - 循环来自 JSON 的数据没有给出预期的结果
- javascript - jQuery大于和小于检查
- arduino - ESP32 CAM - EEPROM / sdcard / 不可擦除内存 - 初学者问题
- r - 以整数形式表示为日期的隐蔽月份
- angular - How to watch a variable in angular component?
- reactjs - Nextjs 中的错误加载 > module.exports = require("three/examples/jsm/loaders/GLTFLoader")