我必须检索 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 反序列化的字段名称的信息。
假设我有一个包含先前 JSON 对象的 JSONObject myDocJson
,我使用迭代器:
Iterator<?> keys = myDocJson.keySet().iterator();
while(keys.hasNext()) {
System.out.println(keys.next());
}
结果我得到:
name
birth
death
contribs
但是例如我没有 name.first
和 name.last
。所以这个迭代器不适用于嵌套对象。
最佳答案
您仅打印 key 。
要获取值,请尝试
JSONObject object = null; // your json object
for (Object key : object.keySet()) {
System.out.println(key + "=" + object.get(key)); // to get the value
}
编辑
对于 JSONObject 内部的对象,请尝试
JSONObject object = null; // your json object
for (Object key : object.keySet()) {
System.out.println(key + "=" + object.get(key)); // to get the value
for (Object subKey : ((JSONObject) object.get(key)).keySet()) {
System.out.println(subKey + "=" + object.get(subKey));
}
}
关于java - 检索 JSONObject 的字段名称 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35527703/