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

如何在Android中使用Java和org.json迭代此JSON数组?

尚景焕
2023-03-14
问题内容

我的JSON字符串如下所示(包含在名为的字符串变量中sJSON):

[
    {"id":284}
],
[
    {"name":John,"surname":Doe},
    {"name":Jane,"surname":Doe}
]

我能够解析这样的第一个数组(使用Java并导入org.json):

JSONArray arrJSON = new JSONArray(sJSON);
JSONObject jsonGeneralData = new JSONObject(arrJSON.get(0).toString());

String sResult = jsonGeneralData.get("id").toString();

那将返回预期结果,即284。我正在努力获取第二个项目数组,并对其进行迭代。我不确定我的JSON字符串格式不正确,还是尝试以错误的方式访问它。这是我尝试过的:

JSONObject jsonPersonData = new JSONObject(arrJSON.get(1).toString());

据我所知,我不知道如何遍历第二个数组中的各个项目。

编辑:

似乎此行仅解析方括号中的第一个字符串:

JSONArray arrJSON = new JSONArray(sJSON);

JSON错误(与上面的示例相同),或者解析不正确?我已经设法通过在字符串上拆分并分别放入每个字符串来解决问题JSONArray,但是我认为这不是最好的处理方式。


问题答案:

你想要这样的东西..

JSONArray jsonArray = new JSONArray(sJSON);
JSONArray jsonPersonData = jsonArray.getJSONArray(1);
for (int i=0; i<jsonPersonData.length(); i++) {
    JSONObject item = jsonPersonData.getJSONObject(i);
    String name = item.getString("name");
    String surname = item.getString("surname");
}


 类似资料:
  • 问题内容: 我正在构建一个需要下载并与在线数据库同步的android应用,我将查询从该应用发送到php页面,该页面以JSON格式返回数据库中的相关行。 有人可以告诉我迭代JSON数组的最佳方法吗? 我收到一个对象数组: 我可以用来访问数组中的JSONObjects的最简单的代码是什么? 编辑:现在,我想到它,我用来迭代循环的方法是: 所以我想我已经能够以某种方式将返回的Json变成可迭代的数组。有

  • 问题内容: 我的应用程序中需要一些简单的JSON解析,而Douglas Crockford库 似乎正是我所需要的。 但是,我似乎遇到了问题。我收到以下错误: 我用Google搜索了一下,我觉得这是由于某些版本不兼容所致。我尝试过更改Java版本,但似乎无济于事。我在程序中使用了Java 7和Java 7功能,最终我想使用Java 7。 我该如何解决这个问题? PS:我看了杰克逊和GSON,绝对不想

  • 问题内容: 如何在jquery中迭代json数据。 问题答案: 您可以这样使用:

  • 问题内容: 我正在尝试解析来自服务器的输出,如下所示: 我正在尝试使用Java org.json对其进行解析,但是我对JSON / org.json没有任何经验,因此遇到了一些麻烦。我该如何解析? 问题答案: 1)假设您的路径上有JSON库(来自www.json.org),这很简单。 从那里,您可以处理JSON对象的各个部分。看一下Javadocs的细节。 https://developer.an

  • 我是一个胡子新手,我想知道如何在这个地图上反复使用胡子 地图键名称各不相同。理想情况下,我希望mustache可以迭代其键和值。因此,在java中,它将如下所示: 所以有人能告诉我如何在小胡子中实现以上。我的意思是模板会是什么样子?我尝试了这个模板,但到目前为止还没有运气:( 所以当我运行这个模板时,输出

  • 上周我刚开始在工作中学习Python。我正在尝试与我们的人力资源系统集成,并使用每个API将信息上传到Okta(我们的SSO提供商)。 HR API以以下格式输出一个json文件 然后,我想将它输入到一个名为的变量中,并将其放在我的代码中: 我希望遍历Result>EmployeeId>DisplayValue并将它们打印到一个dict中,然后在代码的另一部分中遍历这些