当前位置: 首页 > 面试题库 >

Android / Java中的JSON数组迭代

慕皓君
2023-03-14
问题内容

我正在构建一个需要下载并与在线数据库同步的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变成可迭代的数组。有什么想法可以实现这一目标吗?

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


问题答案:

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

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


 类似资料:
  • 问题内容: 我的JSON字符串如下所示(包含在名为的字符串变量中): 我能够解析这样的第一个数组(使用Java并导入org.json): 那将返回预期结果,即284。我正在努力获取第二个项目数组,并对其进行迭代。我不确定我的JSON字符串格式不正确,还是尝试以错误的方式访问它。这是我尝试过的: 据我所知,我不知道如何遍历第二个数组中的各个项目。 编辑: 似乎此行仅解析方括号中的第一个字符串: JS

  • 本文向大家介绍Java中迭代遍历数组,包括了Java中迭代遍历数组的使用技巧和注意事项,需要的朋友参考一下 要遍历Java中的数组,只需使用for循环即可。循环应一直到数组的长度才能显示所有元素。 示例 现在让我们来看一个遍历数组的示例- 输出结果 示例 我们还可以使用for循环遍历数组- 输出结果

  • 问题内容: 我如何迭代字节数组中的位? 问题答案: 你必须写自己的实施历时字节数组,然后创造价值,其记忆中的当前索引的字节数组 和 当前字节中的当前索引。然后像这样的实用方法会派上用场: (范围为0到7)。每次调用时,您都必须在当前字节中增加位索引,并且在到达“第9位”时也必须增加字节数组中的字节索引。 这并不 难 -有点痛苦。让我知道您是否需要示例实现…

  • 问题内容: 我在尝试解决JQuery $ .each()迭代时遇到一些真正的困难 这是我的数组,为方便起见,限制了结果 我的第一个$ .each迭代效果很好,但是“ EVENTS”的子迭代是我遇到问题的地方 我的第一个$ .each()函数 我无法使用的第二个$ .each()函数 我在(松散地)理解这不是单个JSON对象,而是对象的JSON数组,但不了解第一个版本是否有效,第二个版本为什么不起作

  • 问题内容: 我正在尝试读取JSON数组。这是我的代码。 我的示例JSON文件语法如下所示, 前面有一个大括号。当我尝试执行此代码块时,出现错误提示 JSONArray文本必须在....的字符1处以’[‘开头。 有没有人遇到过这样的问题?任何帮助将不胜感激。如果可以的话,请告诉我一个示例代码块。提前致谢。 问题答案: JSON对象以a开头,以a 结尾,而JSON数组以a开头,以a 结尾。 根据您的情

  • 我有一个放心的回复,其中包含以下正文: 我想验证嵌套在2个数组中的状态“已接受”和原因“已通过验证”。我尝试将原因存储为列表,在此示例中进行了概述,但我收到以下错误: 代码: 有没有办法做到: