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

标签 java json mapping jackson dozer

我有一个表示对象的 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/

相关文章:

java - TestNG 中控制组测试顺序的是什么?

ios - Phonegap/Sencha 语言本地化

json - MarshalJSON 错误,顶级后无效字符 "g"

mapping - super CSV 和多 bean 映射

algorithm - 将字符串映射到保持字典顺序的数字

java - 如何通过java将数据库字段中的时间分别转换为小时、分钟、秒的整数?

java - 将集合展平作为 HQL 查询的一部分?

java - 32 位和 64 位 Eclipse 的区别

json - 为什么从远程AWS S3服务器下载json文件时axios GET错误

mapping - 如何获得特定地标的纬度和经度?