gpt4 book ai didi

java - 如何使用 GSON 库将 json 文件读入 java

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:35:58 24 4
gpt4 key购买 nike

我想使用 GSON 库用 java 读取这个 JSON 文件。我刚开始使用 gson libray。有人请更正我的代码我的 JSON 文件如下所示:

{  
"tableRows":[
{
"id":"100",
"mailContent":"Test mail content 123",
"sentiment":"0"
},
{
"id":"200",
"mailContent":"Test mail content 123",
"sentiment":"0"
},
{
"id":"300",
"mailContent":"Test mail content 123",
"sentiment":"0"
}
]
}

这是我为读取此文件而编写的 java 代码:

import java.io.FileNotFoundException;
import java.io.FileReader;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonIOException;
import com.google.gson.JsonParser;
import com.google.gson.JsonSyntaxException;
import com.google.gson.JsonObject;
public class Sample {
public static void main(String[] args) {

JsonParser parser = new JsonParser();
try {
JsonElement jsontree = parser.parse(
new FileReader(
"/Users/kesavan-4688/Desktop/JSP-Eclipse/Sample/src/Demo/sample.json"
)
);
JsonElement je = jsontree.getAsJsonObject();
JsonArray ja = je.getAsJsonArray();
for (Object o : ja)
{
JsonObject person = (JsonObject) o;

String id = person.get("id").getAsString();
System.out.println(id);

String mail = person.get("mailcontent").getAsString();
System.out.println(mail);

String sentiment = person.get("sentiment").getAsString();
System.out.println(sentiment);
}
}
catch (JsonIOException e) {
e.printStackTrace();
} catch (JsonSyntaxException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}

}

但我得到以下异常:

Exception in thread "main" java.lang.IllegalStateException: This is not a JSON Array.
at com.google.gson.JsonElement.getAsJsonArray(JsonElement.java:106)
at Demo.Sample.main(Sample.java:18)

最佳答案

您尝试将 JsonObject 转换为无法工作的 JsonArray,您需要拳头获取根 JsonObject 然后使用 getAsJsonArray(String memberName) 将属性 tableRows 获取为 JsonArray,如下所示:

...
// Get the root JsonObject
JsonObject je = jsontree.getAsJsonObject();
// Get the property tableRows as a JsonArray
JsonArray ja = je.getAsJsonArray("tableRows");
for (Object o : ja) {
...
// Warning JSON is case sensitive so use mailContent instead of mailcontent
String mail = person.get("mailContent").getAsString();
...
}

输出:

100
Test mail content 123
0
200
Test mail content 123
0
300
Test mail content 123
0

关于java - 如何使用 GSON 库将 json 文件读入 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42528457/

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