【问题标题】:Jackson XmlMapper.config() not working杰克逊 XmlMapper.config() 不工作
【发布时间】:2013-12-12 21:12:01
【问题描述】:

我正在使用 Jackson 将一些简单的传入 XML 转换为简单的 java 类,然后再转换回来。这是我的主要课程:

public static void main (String[] args)
            throws IOException {

        ObjectMapper mapper = new XmlMapper();
        mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);    
        Ussd entries = mapper.readValue(new File("input.xml"), Ussd.class);

        System.out.println(entries.toString());

        mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true);
        mapper.writeValue(new FileOutputStream(new File("output.xml")), entries);

还有一个我将要处理的 xml 示例:

<test>
    <type>5</type>
    <msg>Hello World!</msg>
    <premium>
        <cost>12.35</cost>
        <ref>27797740555</ref>
    </premium>
    <msisdn>27231234556</msisdn>
    <sessionid>3</sessionid>
    <network>33</network>
</test>

如何确保输出的格式正确(如果我简单地读入并写出,我希望输出看起来与输入相同)?目前它在一行上返回所有内容,包括一个我宁愿根本不存在的xmlns="",并告诉它缩进输出似乎没有任何区别(将 true 更改为 false 没有任何变化)。有什么明显的问题吗?

【问题讨论】:

标签: java xml jackson


【解决方案1】:

这将启用缩进和多行输出

mapper.enable(SerializationFeature.INDENT_OUTPUT);

如果您需要更多控制权,您可能必须使用 SerializationConfig.withDefaeultPrettyPrinter(yourPrinter); 方法提供自己的漂亮打印机;

【讨论】:

  • 这是正确答案,虽然为时已晚六年 xD。不知道您是如何找到这个问题的,但谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-17
  • 2017-01-15
  • 2018-10-19
  • 2016-09-25
相关资源
最近更新 更多