gpt4 book ai didi

java - 无法将 JSONObjects 添加到数组中

转载 作者:行者123 更新时间:2023-11-29 05:05:04 25 4
gpt4 key购买 nike

我正在使用 JSON simple解析 JSON 文件。当我这样做时,我得到一个 JSONArray。但是当我尝试遍历它并获取它的 JSONObject 元素时,我得到了一个错误。

这是我的代码:

JSONArray jsonData = (JSONArray) jsonParser.parse(reader);

List<JSONObject> elementsList = new ArrayList<JSONObject>();

for (int i = 1; i < jsonData.size(); i++) {
elementsList.addAll(jsonData.get(i)); // Here jsonData.get(i) is a JSONObject
}

我在 Eclipse 中遇到以下错误:

  • List 类型中的 addAll(Collection) 方法不适用于参数 (对象)
  • 类型安全:未经检查的从对象到集合的转换

不确定这些是什么意思以及如何解决。

最佳答案

JSONArray#get(int) 的返回类型为 Object(因为它是从原始类型 ArrayList 继承的)。 List#addAll(Collection) 需要一个 Collection 类型的参数。类型 Object 不能在没有类型转换的情况下转换为 Collection

但是,即使您要强制转换 get 返回的值,底层值实际上也是一个 JSONObject 并且您会得到一个 ClassCastException 在运行时。

你想要的是

elementsList.addAll(jsonData); //  outside the loop

因为 JSONArrayArrayList 的子类型,它是一个 Collection。您会收到有关 jsonData 需要未经检查的转换的警告,但您应该假设您的 JSONArray 中确实有 JSONObject 值。

关于java - 无法将 JSONObjects 添加到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30648600/

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