Android / Java中的JSON数组迭代

发布于 2021-02-02 22:59:13

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

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

我收到一个对象数组:

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

我可以用来访问数组中的JSONObjects的最简单的代码是什么?

编辑:现在,我想到它,我用来迭代循环的方法是:

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

所以我想我已经能够以某种方式将返回的Json变成可迭代的数组。有什么想法可以实现这一目标吗?

我为自己的冒昧表示歉意,但我是通过网上发现的一个示例进行此操作的,此后一直找不到。

关注者
0
被浏览
464
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    我已经用两种不同的方式做到了

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


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看