В настоящее время я могу преобразовать список Java объектов в строку yaml следующим образом:
private static final ObjectMapper YAML_MAPPER = new ObjectMapper(new YAMLFactory());
private static final ObjectWriter YAML_WRITER = YAML_MAPPER.writer();
public static String toYamlString(Object value) throws JsonProcessingException {
String s = YAML_WRITER.writeValueAsString(value);
}
Это генерирует действительный yaml, но генерирует yaml как
---
- dogs: "dalmatians"
items:
- "rover"
- "spot"
- "sir barksalot"
hungry: true
- instruction: "fetch bone"
condition: "bone is thrown"
response: "retrieve bone"
Вместо этого я хотел бы создать yaml, как показано ниже, с дополнительным переводом строк и разделением собак и инструкций:
---
- dogs: "dalmatians"
items:
- "rover"
- "spot"
- "sir barksalot"
hungry: true
- instruction: "fetch bone"
condition: "bone is thrown"
response: "retrieve bone"
В настоящее время я использую Джексона, но ни одна из функций сериализации, похоже, не связана с этой функцией. Я открыт для использования другой библиотеки, но это должно быть Java.
Я попытался использовать MinimalPrettyPrinter, как показано ниже, но он не работает
public static String toYamlString(Object value) throws JsonProcessingException {
String s = YAML_WRITER.with(new MinimalPrettyPrinter() {
@Override
public void writeEndObject(JsonGenerator g, int nrOfEntries) throws IOException
{
g.writeRaw('}');
g.writeRaw('\n');
}
}).writeValueAsString(value);
return s;
}
Что бы быть хорошим способом для достижения этой цели?