我有一个表示对象的 JSON 字符串,我想将其信息放入具有不同结构的 Java 对象 B
中。目前我采用的解决方案是创建一个与 JSON 对象结构相同的 Java 对象 A
,使用 Jackson 将 JSON 转换为 A
,然后使用 Dozer 和 XML 映射将 A
映射到 B
。有没有办法避免使用 A
对象?
简而言之,目前我有这个:
JSON--Jackson-->A--Dozer(XML mappings)-->B
我想实现这个目标
JSON--???-->B
最佳答案
您可能已经知道这一点,但 Jackson 可以使用松散的结构类型,例如 Map
,或JsonNode
作为目标,所以你可以这样做:
JsonNode root = mapper.readTree(jsonSource);
Map<String,Object> asMap = mapper.readValue(jsonSource, Map.class);
然后构建你的 B
。 Jackson 在设计上只有有限数量的结构转换(简单展开),尽管有大量的标量转换(非结构转换),因此如果您确实需要结构更改,那么使用专注于结构更改的库可能是有意义的。
关于java - 从 JSON 映射到具有不同结构的 java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27620058/