一尘不染

如何在XStream中禁用漂亮打印(空白/换行符)?

java

这就是我为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禁用漂亮打印?


阅读 686

收藏
2020-12-03

共1个答案

一尘不染

在社区的一些帮助下,我找到了答案。

对于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构造函数。

2020-12-03