【问题标题】:jackson List<Map<String, String>> to xmljackson List<Map<String, String>> 到 xml
【发布时间】:2014-03-20 12:00:57
【问题描述】:

我有这样的课:

@XmlRootElement(name = "info")
@XmlAccessorType(XmlAccessType.FIELD)
@Data
public class BasketInfoResult extends FibResult {

    private List<Map<String, String>> items;
}

如何将它映射到 XML 上? Resteasy 在 json 中映射它没有错误,但是当我尝试获取 xml 时出现错误

1 个 IllegalAnnotationExceptions 计数

【问题讨论】:

    标签: java xml json jackson resteasy


    【解决方案1】:

    Jackson 是一个 JSON 处理器。它不能映射到 XML。为此,您将需要其他东西,也许是 JAX-B 或 Castor?

    编辑:

    这是 JAXB 的“特性”。最简单的解决方法是为您的 List 创建一个包装类。像这样的东西应该可以工作:

    public class SensibleNameForWrapperClass {
        private List<Map<String, String>> value;
    
        public List<Map<String, String>> getValue() {
            return value;
        }
    
        public void setValue(List<Map<String, String>> value) {
            this.value = value;
        }
    }
    

    【讨论】:

    • 杰克逊可以做 XML。不在 jackson-databind 中,而是在专用模块中。
    • 我将 resteasy 用作 jaxrs。在简单的例子中,一切都按预期进行,我转换为 xml 的任何数据,但这个 List> 不是
    • 哦。那是因为 JAXB 不做列表。我将更新我的答案以反映他的情况。
    • 谢谢。但这也不起作用:)但是您的回答非常有帮助。我将字段声明更改为 List 并且在包装器值字段中仅包含地图(不是地图列表)。
    猜你喜欢
    • 2020-08-01
    • 2018-09-22
    • 2021-03-25
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    • 2018-08-02
    • 2020-01-26
    • 1970-01-01
    相关资源
    最近更新 更多