是否可以使ObjectMapper仅转换实际对象而不递归转换对象树的其余部分?
那样:
Map<String,Object> props = new ObjectMapper().convertValue(obj, Map.class);
会产生[field,value]的映射,其中value是对obj字段实例的实际引用而不是Maps吗?
答案 0 :(得分:1)
杰克逊现在没有这样的功能。您可以使用可以共享某些数据和“协议”的自定义串行器/解串器对来实现此目的。但是,当更容易(并且更快)的方式是从POJO到Map,可能使用反射时,为什么还要这么做呢。
答案 1 :(得分:0)
我不确定我是否理解你在这里真正要做的事情。
但有一件事可能会有所帮助,请记住,java.lang.Object
类型(以及JsonNode
)可以自由地包含在结构中,以获得更深层次的“无类型”绑定结构体。使用这些类型,您可以避免对对象模型的某些子集进行严格的数据绑定;并且可能更动态地使用ObjectMapper.convertValue()
转换为POJO。