我正在使用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什么都不改变)。有什么明显的问题吗?
答案 0 :(得分:1)
这将启用缩进和多行输出
mapper.enable(SerializationFeature.INDENT_OUTPUT);
如果需要更多控制,您可能必须为自己的漂亮打印机提供SerializationConfig.withDefaeultPrettyPrinter(yourPrinter);