我正在构建一个需要下载并与在线数据库同步的android应用程序,我正在将我的查询从该应用程序发送到一个php页面,该页面以JSON格式返回数据库中的相关行.

有人能告诉我迭代JSON数组的最佳方法吗?

我收到一组对象:

[{json object},{json object},{json object}]

我可以使用哪段最简单的代码来访问数组中的JSONObject?

编辑:考虑到这一点,我用来迭代循环的方法是:

for (String row: json){
     id = row.getInt("id");
     name = row.getString("name");
     password = row.getString("password");
}

所以我想我已经能够以某种方式将返回的Json转换为可编辑的array.有什么办法可以做到这一点吗?

我为我的 vagrant 道歉,但我从网上找到的一个例子中找到了这个例子,然后就再也找不到了.

推荐答案

我用了两种不同的方式,

1.) make a Map

        HashMap<String, String> applicationSettings = new HashMap<String,String>();
        for(int i=0; i<settings.length(); i++){
            String value = settings.getJSONObject(i).getString("value");
            String name = settings.getJSONObject(i).getString("name");
            applicationSettings.put(name, value);
        }

2.) make a JSONArray of names

    JSONArray names = json.names();
    JSONArray values = json.toJSONArray(names);
    for(int i=0; i<values.length(); i++){
        if (names.getString(i).equals("description")){
            setDescription(values.getString(i));
        }
        else if (names.getString(i).equals("expiryDate")){
            String dateString = values.getString(i);
            setExpiryDate(stringToDateHelper(dateString)); 
        }
        else if (names.getString(i).equals("id")){
            setId(values.getLong(i));
        }
        else if (names.getString(i).equals("offerCode")){
            setOfferCode(values.getString(i));
        }
        else if (names.getString(i).equals("startDate")){
            String dateString = values.getString(i);
            setStartDate(stringToDateHelper(dateString));
        }
        else if (names.getString(i).equals("title")){
            setTitle(values.getString(i));
        }
    }

Java相关问答推荐

在Java中将Charsequence数组更改为String数组或List String<>

将数组整体转换为链接表

Jlink选项&-strie-ative-Commands";的作用是什么?

RESTful框架类字段是安全的还是不安全的

为什么JAVA&S清洁器使用链表而不是并发HashSet?

Spark忽略Iceberg Nessie目录

无法使用ApacheSpark依赖项构建JavaFX应用程序

在Spring终结点中,是否可以同时以大写和小写形式指定枚举常量?

WebSockets和Spring Boot安全性出现错误401

有效的公式或值列表必须少于或等于255个字符

垃圾收集时间长,会丢弃网络连接,但不会在Kubernetes中反弹Pod

根本不显示JavaFX阿拉伯字母

在使用具有不同成本的谓词调用allMatch之前对Java流进行排序会带来什么好处吗?

如何在不作为类出现的表上执行原生查询?

为什么项目名称出现在我的GET请求中?

活泼的一次判断成语,结果中等

Kotlin-仅替换字符串中最后一个给定的字符串

按长度排序字符串数组

如何使用带有可选参数的类生成器?

让标签占用JavaFX中HBox的所有可用空间