我必须在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
。因此,此迭代器不适用于innested Object。
答案 0 :(得分:0)
您只是打印钥匙。
要获取值,请尝试
<controls:GroupingGrid ShowGroupingItemCount="True" x:Name="TabGrid"
ItemsSource="{Binding SearchResultsSource.View}"
SelectedItem="{Binding SelectedItem}">
修改强>
对于JSONObject内部的对象,请尝试
JSONObject object = null; // your json object
for (Object key : object.keySet()) {
System.out.println(key + "=" + object.get(key)); // to get the value
}
答案 1 :(得分:-1)
我相信你需要知道json结构。 如果有必要,请对孩子进行迭代。
编辑:我错了。这个问题可以帮到你,请看Sean Patrick Floyd的回答:JSON - Iterate through JSONArray