【发布时间】:2016-02-20 19:03:45
【问题描述】:
我必须在 Java 中检索 JSONObject 的所有字段名称。
例如,这是一个 JSON:
{
"name" : {
"first" : "John",
"last" : "McCarthy"
},
"birth" : ISODate("1927-09-04T04:00:00.000Z"),
"death" : ISODate("2011-12-24T05:00:00.000Z"),
"contribs" : [
"Lisp",
"Artificial Intelligence",
"ALGOL"
]
}
这个 JSON 对象只是一个例子,我不知道 JSONObject 包含什么,因为我导入了它。我没有关于使用 Gson/Jackson 进行反序列化的字段名称的任何信息。
假设我有一个 JSONObject myDocJson 包含之前的 JSON 对象,我使用一个迭代器:
Iterator<?> keys = myDocJson.keySet().iterator();
while(keys.hasNext()) {
System.out.println(keys.next());
}
结果我得到:
name
birth
death
contribs
但例如我没有name.first 和name.last。所以这个迭代器不适用于嵌套对象。
【问题讨论】: