Jackson 库提供了一个 ObjectMapper 类,可以用来实现对象和 Map<String, Object> 之间的相互转换。

将对象转换为 Map<String, Object> 的方法如下:

 

ObjectMapper mapper = new ObjectMapper();
Map<String, Object> map = mapper.readValue(object, new TypeReference<Map<String, Object>>() {});

 

第一行创建了一个 ObjectMapper 对象,第二行调用了 convertValue 方法,并传入需要转换的对象和转换后的目标类型。

这样实现的话就可以支持对象里的属性是具体的 class 而不是 Map .

正确使用后得到的结果就是一个包含对象所有属性的Map.