我正在尝试使用 GSON 将 JSON .txt 文件解析为 JAVA 对象。 JSON 文件具有以下结构:
{
"event0" : {
"a" : "abc",
"b" : "def"
},
"event1" : {
"a" : "ghi",
"b" : "jkl",
"c" : "mno"
}
}
我已将文本文件读入一个名为 dataStr 的字符串。我想使用 fromJson 方法将事件捕获到以下 JAVA 类中:
public class Event {
private String a;
private String b;
private String c;
public Event() {}
}
问题是 JSON 在某些元素中可能有一个额外的字段“c”。我想将所有事件解析为 Event 类对象,对于没有“c”字段的情况,我想在我的对象中将其设置为 null 或零。事先不知道哪些元素将具有“c”字段。
具体来说,我无法弄清楚如何处理某些 JSON 元素中的一个额外字段。我想按照以下方式做一些事情:
Gson gson = new Gson();
ArrayList<Event> events = gson.fromJson(dataStr, Event.class);
但我首先被困住了,如何遍历 Json 文件中的事件,其次,如何将一些偶尔丢失的字段处理到同一个 Event 对象中。我真的很感激在正确的方向踢。谢谢大家。
我对 JSON 解析相当陌生,可能在以下答案中遗漏了一些内容:
Using Gson to convert Json into Java Object
Mapping JSON into POJO using Gson
最佳答案
我不确定我是否理解你的问题。据我了解,您正在尝试使用 java 类中不可用的额外字段转换 json 对象。坦率地说,我不明白你为什么想要那个或者是否可以开始。您可以通过将 json 转换为 Map 来解决此问题。
map map = gson.fromJson(jsonString, Map.class);
关于java - 使用 GSON 将 Json 解析为 JAVA 对象,其中 Json 元素可能会有所不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44967922/