Есть ли параметр SnakeYaml DumperOptions, чтобы избежать вывода с двойным интервалом?
Кажется, я вижу вывод с двойным интервалом при разборе / выводе простого файла YAML с текстовым полем pipe.
Тест это:
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 ответ
Решение
В исходной строке вы используете буквальный стиль - это указывает на '|' персонаж. Когда вы выводите свой текст, вы используете стиль в одинарных кавычках, который игнорирует символы '\n' в конце. Вот почему они повторяются с пустыми строками. Попробуйте установить разные стили в DumperOptions:
// and others - FOLDED, DOUBLE_QUOTED
DumperOptions.setDefaultScalarStyle(ScalarStyle.LITERAL)