【发布时间】:2017-12-11 14:00:10
【问题描述】:
我正在尝试使用 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
【问题讨论】:
-
您的 JSON 看起来不正确,您能描述一下您要查找的数据模型吗?可能值为 A、B 和 C 的事件数组?
-
修复了 JSON。是的,一系列事件,肯定有 A 和 B 的值,可能还有 C。