0

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

谢谢!

标记

4

1 回答 1

1

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

// and others - FOLDED, DOUBLE_QUOTED
DumperOptions.setDefaultScalarStyle(ScalarStyle.LITERAL) 
于 2012-01-12T10:05:47.397 回答