【发布时间】:2017-02-14 13:44:13
【问题描述】:
我有一个从 JSON 文件填充的 HashMap。键值对中的值可以是两种不同的类型 - 字符串或另一个键值对。
例如:
HashMap<String,Object> hashMap = new Map();
JSON 文件看起来有点像这样:
"custom": {
"mappedReference": {"source": "someMappedReference"},
"somethingElse": "some literal"
}
}
稍后在填充 hashMap 之后,当我迭代时,我需要检查值是 HashMap 还是 String 类型。我尝试了多种方法,但似乎无法在 Map 中获取对象的类型。
for(Map.Entry<String,Object> m : hashMap.entrySet())
{
final String key = m.getKey();
final Object value = m.getValue();
if(value instanceof Map<String,String>)
{
//get key and value of the inner key-value pair...
}
else
{
//it's just a string and do what I need with a String.
}
}
关于如何从地图中获取数据类型的任何想法?提前致谢
【问题讨论】:
-
map.get(key).getClass()stackoverflow.com/questions/8029618/… -
key.getClass();
-
地图没有元数据。您可以知道键的类和特定条目的值,但不能知道泛型参数。
-
这是一个类似问题的答案,可能会有所帮助:stackoverflow.com/a/42236388/7563898
-
这是一个类似问题的答案,可能会有所帮助:stackoverflow.com/a/42236388/7563898
标签: java json hashmap instanceof