Если вы хотите исключить определенные свойства, вы можете достичь этого с помощью пользовательского Представителя класса
этот короткий фрагмент
public static void main(String[] args) {
Info info = new Info();
info.setInfoId("demo");
info.setDescription("foo\nbar");
info.setInstructions("one\ntwo");
Yaml yaml = new Yaml(new InfoRepresenter());
String yamlString = yaml.dumpAs(info, Tag.MAP, DumperOptions.FlowStyle.BLOCK);
System.out.println(yamlString);
}
private static class InfoRepresenter extends Representer {
@Override
protected NodeTuple representJavaBeanProperty(Object javaBean, Property property, Object propertyValue,
Tag customTag) {
if (javaBean instanceof Info && "infoId".equals(property.getName())) {
return null;
} else {
return super.representJavaBeanProperty(javaBean, property, propertyValue,
customTag);
}
}
}
производит следующий вывод
description: |-
foo
bar
instructions: |-
one
two