[英]Why I am getting null JSON response?
我正在从JSON
获取数据到 android.But,我得到一个空的JSON
响应。 生成JSON
数据的PHP
代码如下:
$result = $conn->query("SELECT dbname FROM users ORDER BY dbname ASC");
//defined second array for dbnames' list
$dblist = array();
while($row = $result->fetch_assoc()){
//array_push($response['dblist'],$row['dbname']);
$dblist[] = array('name'=>$row['dbname']);
}
$response['dblist'] = $dblist;
这是JSON
响应。
{"dblist":[{"name":"a"},{"name":"arsod"}]}
android
获取数据的Java
代码如下:
JSONObject obj = new JSONObject(s);
JSONArray names = obj.getJSONArray("dblist");
for(int i=0; i < names.length(); i++) {
JSONObject n = names.getJSONObject(i);
String name = n.getString("name");
Toast.makeText(MainActivity.this, name, Toast.LENGTH_SHORT).show();
institutes.add(name);
}
其中institutes
是一个ArrayList
,我想在其中添加每个获取的元素。 但是在获取数据时,我在 logcat org.json.JSONException: End of input at character 0 of
. 出了什么问题?
删除这一行:
JSONObject object = obj.getJSONObject("dblist");
并替换所有出现的object.
与obj.
您的JSONObject obj
不包含"dblist"
对象,其中只有数组,因此您应该直接在obj
查找getJSONArray("dblist")
编辑:您正在解析不同的String s
,我刚刚检查了此代码:
final String s = "{\"dblist\":[{\"name\":\"a\"},{\"name\":\"arsod\"}]}";
JSONObject obj = new JSONObject(s);
JSONArray names = obj.getJSONArray("dblist");
for (int i = 0; i < names.length(); i++) {
JSONObject n = names.getJSONObject(i);
String name = n.getString("name");
Toast.makeText(this, name, Toast.LENGTH_SHORT).show();
}
这几乎和你的完全一样,而且工作得很好......
考虑到以下几点:
s = {"dblist":[{"name":"a"},{"name":"arsod"}]}
你的代码应该是这样的
JSONObject obj = new JSONObject(s);
JSONArray names = obj.getJSONArray("dblist");
for(int i=0; i < names.length(); i++) {
JSONObject n = names.getJSONObject(i);
String name = n.getString("name");
Toast.makeText(MainActivity.this, name, Toast.LENGTH_SHORT).show();
institutes.add(name);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.