是否存在SnakeYaml DumperOptions设置以避免双倍间距输出?

时间:2012-01-11 04:58:33

标签: yaml snakeyaml

在使用管道文本字段解析/转储简单的YAML文件时,我似乎看到了双倍行距输出。

测试是:

public void yamlTest() 
{
    DumperOptions printOptions = new DumperOptions();
    printOptions.setLineBreak(DumperOptions.LineBreak.UNIX);
    Yaml y = new Yaml(printOptions);
    String input = "foo: |\n" +
            "      line 1\n" +
            "      line 2\n";
    Object parsedObject = y.load(new StringReader(input));
    String output = y.dump(parsedObject);
    System.out.println(output);
}

,输出为:

{foo: 'line 1

    line 2

    '}

注意第1行和第2行之间的额外空格,以及在字符串结尾之前的第2行之后。

此测试在Mac OS X 10.6上运行,java版本为“1.6.0_29”。

谢谢!

标记

1 个答案:

答案 0 :(得分:1)

在原始字符串中使用文字样式 - 它由“|”表示字符。转储文本时,使用单引号样式,忽略末尾的'\ n'字符。这就是他们用空行重复的原因。 尝试在DumperOptions中设置不同的样式:

// and others - FOLDED, DOUBLE_QUOTED
DumperOptions.setDefaultScalarStyle(ScalarStyle.LITERAL)