Используйте DumperOptions.FlowStyle.BLOCK
вместо этого, если вы хотите иметь отображение в стиле блока.Вам также нужно сообщить конструктору Yaml
о ваших options
- сейчас они ничего не делают.
Чтобы удалить корневой тег и задать опции для Yaml
, добавьте
final Representer representer = new Representer();
representer.addClassTag(Prop.class, Tag.MAP);
Yaml yaml = new Yaml(representer, options);
Устанавливает тег класса Prop
в !!map
, тег YAML по умолчанию для отображений.Это будет опущено, если вы не выводите его в каноническом стиле.
При этом важно отметить следующее: В общем, вы не можете гарантировать, что формат остается прежним ,SnakeYAML не поддерживает это, и технически это будет нарушением спецификации.Ключи всегда записываются в порядке, определенном вами в классе Prop
, а не в том порядке, в котором они встречались в исходном файле.При десериализации удаляется такая информация, как пробелы, комментарии и другие подробности форматирования.
Если в ваших данных есть Map
, порядок ключей будет произвольным (например, вы не можете определить или изменить его).Если исходный документ содержал ...
или ---
, эта информация будет потеряна.Если исходный документ содержал скаляры с ''
или ""
, эта информация теряется.
Вы можете определить только согласованное поведение вывода (т.е. определить свои параметры и всегда использовать их), но если для ввода используетсядругой стиль, этот стиль всегда будет потерян.