从JSON映射到具有不同结构的java对象

时间:2014-12-23 12:07:16

标签: java json mapping jackson dozer

我有一个表示对象的JSON字符串,我想将其信息放入具有不同结构的Java对象B中。目前我正在采取的解决方案是创建一个Java对象A,其结构与JSON对象相同,使用Jackson进行从JSON到A的转换,然后从A进行映射。使用带有XML映射的Dozer到B。无论如何都要避免使用A个对象吗?

简而言之,目前我有这个:

JSON--Jackson-->A--Dozer(XML mappings)-->B

我想实现这个目标

JSON--???-->B

1 个答案:

答案 0 :(得分:1)

你可能已经知道了,但杰克逊可以使用松散的结构类型,如MapJsonNode作为目标,所以你可以这样做,比如说:

JsonNode root = mapper.readTree(jsonSource); Map<String,Object> asMap = mapper.readValue(jsonSource, Map.class);

然后构建您的B。虽然有大量的标量转换(非结构转换),但Jackson在设计上只有有限的结构转换(简单展开),所以如果你确实需要结构改变,那么使用一个专注于它的库是有意义的。结构变化。