格式化输出
Marshaller.JAXB_FORMATTED_OUTPUT
默认的序列化操作,结果是正确的,但是显示成一行不便于阅读,可以通过添加属性JAXB_FORMATTED_OUTPUT
来修正:
在此之前,为了能重用 JAXBContext,可以只初始化一个实例,对代码稍微重构一下:
private static JAXBContext context;
private static One one;
@BeforeClass
public static void init() throws JAXBException {
// JAXBContext 是线程安全的
context = JAXBContext.newInstance(One.class);
// 初始化全局的 Java bean
one = new One();
one.setName("Test one");
}
这样可以更专注于核心逻辑,下面的代码使用JAXB_FORMATTED_OUTPUT
来格式化输出:
@Test
public void test1() throws JAXBException {
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(one, System.out);
}
得到的结果:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<one>
<id>11</id>
<name>Test one</name>
</one>
看起来舒服很多。