Jackson XmlMapper.config()不能正常工作

时间:2013-11-27 09:45:43

标签: java xml jackson

我正在使用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 to false什么都不改变)。有什么明显的问题吗?

1 个答案:

答案 0 :(得分:1)

这将启用缩进和多行输出

mapper.enable(SerializationFeature.INDENT_OUTPUT);

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