是否有SnakeYaml DumperOptions设置以避免双间距输出?

是否有SnakeYaml DumperOptions设置以避免双间距输出?,yaml,snakeyaml,Yaml,Snakeyaml,在解析/转储带有管道文本字段的简单YAML文件时,我似乎看到了双倍行距的输出 测试是: public void yamlTest() { DumperOptions printOptions = new DumperOptions(); printOptions.setLineBreak(DumperOptions.LineBreak.UNIX); Yaml y = new Yaml(printOptions); String input = "foo: |\n

在解析/转储带有管道文本字段的简单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”上运行

谢谢


在使用文字样式的原始字符串中标记

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

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

谢谢你的指针…这有助于我理解格式。遗憾的是,在不同的情况下,我需要不同的格式选项(短值和多行),所以看起来我需要一个自定义的重新输入。