Php 为什么json数组只检索第一条记录
这个问题与从mysql解析json有关。我想在我的android应用程序中创建一个登录页面。 这是我的问题:当应用程序处于调试状态时(实际上是在运行!),response的值(字符串json)包含所有元素,然后将它们引用到我的ParseJSONuser。在这个活动中,jsonObject的值也包含json中的所有元素,但在我的jsonArray中,我看到了json的第一条记录,当然还有jsonArray.length()=1,为什么jsonArray只检索第一个元素(或一条json记录)。 这是ParseJSON类:Php 为什么json数组只检索第一条记录,php,android,mysql,json,jsonobject,Php,Android,Mysql,Json,Jsonobject,这个问题与从mysql解析json有关。我想在我的android应用程序中创建一个登录页面。 这是我的问题:当应用程序处于调试状态时(实际上是在运行!),response的值(字符串json)包含所有元素,然后将它们引用到我的ParseJSONuser。在这个活动中,jsonObject的值也包含json中的所有元素,但在我的jsonArray中,我看到了json的第一条记录,当然还有jsonArray.length()=1,为什么jsonArray只检索第一个元素(或一条json记录)。 这是
public class ParseJSONUser {
private static String name_get, pass_get, email_get, imageid_get, credit_get, state_get;
public static final String JSON_ARRAY = "user";
public static final String KEY_NAME = "name";
public static final String KEY_EMAIL = "email";
public static final String KEY_PASS = "pass";
public static final String KEY_IMAGEID = "imageid";
public static final String KEY_CREDIT = "credit";
public static final String KEY_STATE = "state";
public ArrayList<ArrayList<String>> repository;
private JSONArray jsonArray = null;
private String json;
public ParseJSONUser(String json){
this.json = json;
}
protected void parseJSONuser(){
repository = new ArrayList<ArrayList<String>>();
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(json);
jsonArray = jsonObject.getJSONArray(JSON_ARRAY);
for(int i = 0; i<jsonArray.length() ; i++){
JSONObject jo = jsonArray.getJSONObject(0);
name_get = jo.getString(KEY_NAME);
email_get = jo.getString(KEY_EMAIL);
pass_get = jo.getString(KEY_PASS);
imageid_get = jo.getString(KEY_IMAGEID);
credit_get = jo.getString(KEY_CREDIT);
state_get = jo.getString(KEY_STATE);
ArrayList<String> al = new ArrayList<>();
al.add(0,name_get);
al.add(1,email_get);
al.add(2, pass_get);
al.add(3, imageid_get);
al.add(4, credit_get);
al.add(5, state_get);
repository.add(al);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
公共类ParseJSONUser{
私有静态字符串name\u-get、pass\u-get、email\u-get、imageid\u-get、credit\u-get、state\u-get;
公共静态最终字符串JSON_ARRAY=“user”;
公共静态最终字符串键\u NAME=“NAME”;
公共静态最终字符串键\u EMAIL=“EMAIL”;
公共静态最终字符串键\u PASS=“PASS”;
公共静态最终字符串键\u IMAGEID=“IMAGEID”;
公共静态最终字符串键\u CREDIT=“CREDIT”;
公共静态最终字符串KEY\u STATE=“STATE”;
公共阵列列表
对不起,我的英语不好。请帮忙……谢谢,因为你总是在循环中获得第一名。
您应该使用i
参数:
...
for(int i = 0; i<jsonArray.length() ; i++){
JSONObject jo = jsonArray.getJSONObject(i);
...
。。。
对于(int i=0;inot difference)…在我的jsonArray中只有一条记录。谢谢,但它对我不起作用…我在调试中检查它。请发布您的Json,可能您使用了错误的标记。这是我的php文件和结果(Json):正如我在示例中看到的,根不是数组。您应该有用户[{“user”}..{“user”}]
我该怎么办?我的php学得不好。请帮我修改一下这个代码。它不会再工作了
...
for(int i = 0; i<jsonArray.length() ; i++){
JSONObject jo = jsonArray.getJSONObject(i);
...