【发布时间】:2020-09-27 16:38:16
【问题描述】:
使用此代码
Map<String,Object> payloadMap = new HashMap<String,Object>();
payloadMap = (Map<String,Object>) new Gson().fromJson(result, payloadMap.getClass());
,我把这个json转换成:
{ “名称”:“名称1”, "工作":"检察官", “部”: { "department_name":"检察官办公室" } }
这做得很好,但现在我想访问子(嵌套)地图的值。
在父映射中,子映射“包装”到对象。 因此,我尝试从父地图的对象值中获取“包装”的子地图。
public void mapRequestNode (Map<String,Object> payloadMap) {
payloadMap.entrySet().forEach(node->this.getDataFromNode(node));
}
从上图可以看出,子图“department”是没有办法使用的,子图“department”已经被“包裹”到了Object中。我可以访问 Object-methods,但不能访问 Map-methods(例如,我不能使用“value.get("department_name")”。我尝试强制转换“(Map
以上案例中的“部门”名称仅作为示例!我不知道 json 子对象的具体名称。可能有无限个名字!所以我不能使用类似“payloadMap.get("department")”的东西
【问题讨论】:
-
X instanceof Object是一个冗余检查。一切都是 -
抱歉,“一切都是”是什么意思?
-
一切都是对象。所以不能是假的