Под прикрытием Groovy YamlBuilder использует конвертер Джексона JSON в YAML.
Конвертер Джексона поддерживает буквальный стиль блока, но его необходимо включить. Текущая версия YamlBuilder не поддерживает параметры настройки.
Я скопировал класс YamlBuilder и связанный класс YamlConverter, чтобы я мог изменить настройки.
В классе YamlBuilder я изменил этот метод:
public static String convertJsonToYaml(Reader jsonReader) {
try (Reader reader = jsonReader) {
JsonNode json = new ObjectMapper().readTree(reader);
return new YAMLMapper().writeValueAsString(json);
} catch (IOException e) {
throw new YamlRuntimeException(e);
}
}
Быть таким:
public static String convertJsonToYaml(Reader jsonReader) {
try (Reader reader = jsonReader) {
JsonNode json = new ObjectMapper().readTree(reader);
YAMLMapper mapper = new YAMLMapper()
mapper.configure(YAMLGenerator.Feature.LITERAL_BLOCK_STYLE, true)
return mapper.writeValueAsString(json);
} catch (IOException e) {
throw new YamlRuntimeException(e);
}
}
Это позволяет мне сделать:
mapper.configure(YAMLGenerator.Feature.LITERAL_BLOCK_STYLE, true)
, которая успешно отрендерит YAML в виде литерального блока:
data: |-
this is
a literal
text value