gpt4 book ai didi

java - 如何使用 Json.simple 解析 Java 中的 JSONArray?

转载 作者:搜寻专家 更新时间:2023-10-30 21:16:40 25 4
gpt4 key购买 nike

我正在尝试读取这样的 JSON 文件:

{
"presentationName" : "Here some text",
"presentationAutor" : "Here some text",
"presentationSlides" : [
{
"title" : "Here some text.",
"paragraphs" : [
{
"value" : "Here some text."
},
{
"value" : "Here some text."
}
]
},
{
"title" : "Here some text.",
"paragraphs" : [
{
"value" : "Here some text.",
"image" : "Here some text."
},
{
"value" : "Here some text."
},
{
"value" : "Here some text."
}
]
}
]
}

用于学校练习。我选择尝试使用 JSON.simple(来自 GoogleCode),但我对另一个 JSON 库持开放态度。我听说过 Jackson 和 Gson:它们比 JSON.simple 好吗?

这是我当前的 Java 代码:

Object obj = parser.parse(new FileReader( "file.json" ));

JSONObject jsonObject = (JSONObject) obj;

// First I take the global data
String name = (String) jsonObject.get("presentationName");
String autor = (String) jsonObject.get("presentationAutor");
System.out.println("Name: "+name);
System.out.println("Autor: "+autor);

// Now we try to take the data from "presentationSlides" array
JSONArray slideContent = (JSONArray) jsonObject.get("presentationSlides");
Iterator i = slideContent.iterator();

while (i.hasNext()) {
System.out.println(i.next());
// Here I try to take the title element from my slide but it doesn't work!
String title = (String) jsonObject.get("title");
System.out.println(title);
}

我检查了很多示例(一些在 Stack 上!)但我从未找到解决问题的方法。

也许我们不能用 JSON.simple 做到这一点?你有什么建议?

最佳答案

您永远不会为 jsonObject 分配新值,因此在循环内它仍然引用完整的数据对象。我想你想要这样的东西:

JSONObject slide = i.next();
String title = (String)slide.get("title");

关于java - 如何使用 Json.simple 解析 Java 中的 JSONArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18831948/

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