Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么json数组只检索第一条记录_Php_Android_Mysql_Json_Jsonobject - Fatal编程技术网

Php 为什么json数组只检索第一条记录

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记录)。 这是

这个问题与从mysql解析json有关。我想在我的android应用程序中创建一个登录页面。 这是我的问题:当应用程序处于调试状态时(实际上是在运行!),response的值(字符串json)包含所有元素,然后将它们引用到我的ParseJSONuser。在这个活动中,jsonObject的值也包含json中的所有元素,但在我的jsonArray中,我看到了json的第一条记录,当然还有jsonArray.length()=1,为什么jsonArray只检索第一个元素(或一条json记录)。

这是ParseJSON类:

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);
...