这就是我为XML创建XStream实例的方式:
XStream xstream = new XStream();
这是针对JSON的:
private final XStream xstream = new XStream(new JsonHierarchicalStreamDriver() { public HierarchicalStreamWriter createWriter(Writer writer) { return new JsonWriter(writer, JsonWriter.DROP_ROOT_MODE); } });
他们两个都漂亮地打印(缩进)输出。
如何要求XStream禁用漂亮打印?
在社区的一些帮助下,我找到了答案。
对于XML, 您必须更改序列化方式:
该行:
xStream.toXML(o, new OutputStreamWriter(stream, encoding));
改为线
xStream.marshal(o, new CompactWriter(new OutputStreamWriter(stream, encoding)));
对于JSON, 您仅更改XStream的创建方式。因此,XStream的初始化更改为:
private final XStream xstreamOut = new XStream(new JsonHierarchicalStreamDriver() { public HierarchicalStreamWriter createWriter(Writer writer) { return new JsonWriter(writer, new char[0], "", JsonWriter.DROP_ROOT_MODE); } });
注意,使用4参数的JsonWriter构造函数。