【问题标题】:Map from JSON to java object with different structure从 JSON 映射到具有不同结构的 java 对象
【发布时间】:2014-12-23 12:07:16
【问题描述】:

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

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

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

我想实现这个目标

JSON--???-->B

【问题讨论】:

  • 这取决于Json和B结构。如果您发布 Json 和 B java 类 - 会更容易提供帮助

标签: java json mapping jackson dozer


【解决方案1】:

您可能已经知道这一点,但 Jackson 可以使用松散结构类型,例如 MapJsonNode 作为目标,所以您可以这样做:

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

然后构造你的B。尽管有大量的标量转换(非结构转换),但杰克逊在设计上只有有限数量的结构转换(简单展开),所以如果您确实需要结构更改,使用专注于的库可能是有意义的结构变化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多