gpt4 book ai didi

java - 使用 for-each 循环或使用迭代器迭代 JSON 数组 (Android Studio)

转载 作者:太空宇宙 更新时间:2023-11-04 11:24:58 25 4
gpt4 key购买 nike

我目前正在尝试使用 for-each 循环或迭代器而不是普通的 for 循环来迭代 JSONArray,但看起来 org.json 不支持它们。关于如何编辑以下代码以使其能够工作的任何想法,我已经尝试了大约 4 个小时来找到解决方案,但遗憾的是没有成功。任何帮助将不胜感激。这是代码的重要部分:

String strJson = loadJsonFromAssetsFolder();
JSONObject jsonRootObject = new JSONObject(strJson);
JSONArray jsonArray = jsonRootObject.optJSONArray("restaurant");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
list.add(jsonObject.optString("name").toString());
}

稍微澄清一下。第一行基本上是 jsonFile 中表示为字符串的文本。起初,我将值添加到一个简单的字符串数组中,但后来我将其更改为 ArrayList,因为如果我要使用 for-each 循环,这将是合乎逻辑的。我尝试使用 org.json.simple、net.sf.json 作为替代方案,但我无法使用这两个库来做到这一点。

最佳答案

您可以使用迭代器,因为 JsonArray 提供了 getIterator 方法。然而,这些是原始迭代器,因此没有与它们关联的特定类型(因此每个元素都被视为对象)。不过你可以贬低他们。

    ArrayList<String> list = new ArrayList<>();
String strJson = loadJsonFromAssetsFolder();
JSONObject jsonRootObject = new JSONObject(strJson);
JSONArray jsonArray = jsonRootObject.optJSONArray("restaurant");
for (Object jsonObject : jsonArray) {
list.add(((JSONObject) jsonObject).optString("name"));
}

您有什么理由不想使用普通的 for 循环吗?确实没有什么区别。 您还可以查看 GSON 等库,它可以将其映射到 Java 对象。

关于java - 使用 for-each 循环或使用迭代器迭代 JSON 数组 (Android Studio),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44479032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com