我有一个表示对象的JSON字符串,我想将其信息放入具有不同结构的Java对象B
中。目前我正在采取的解决方案是创建一个Java对象A
,其结构与JSON对象相同,使用Jackson进行从JSON到A
的转换,然后从A
进行映射。使用带有XML映射的Dozer到B
。无论如何都要避免使用A
个对象吗?
简而言之,目前我有这个:
JSON--Jackson-->A--Dozer(XML mappings)-->B
我想实现这个目标
JSON--???-->B
答案 0 :(得分:1)
你可能已经知道了,但杰克逊可以使用松散的结构类型,如Map
或JsonNode
作为目标,所以你可以这样做,比如说:
JsonNode root = mapper.readTree(jsonSource);
Map<String,Object> asMap = mapper.readValue(jsonSource, Map.class);
然后构建您的B
。虽然有大量的标量转换(非结构转换),但Jackson在设计上只有有限的结构转换(简单展开),所以如果你确实需要结构改变,那么使用一个专注于它的库是有意义的。结构变化。