我有以下方法用于将对象转换为yaml
表示形式(例如,我可以打印到控制台)
@Nonnull
private String outputObject(@Nonnull final ObjectToPrint packageSchedule) {
DumperOptions options = new DumperOptions();
options.setAllowReadOnlyProperties(true);
options.setPrettyFlow(true);
return new Yaml(new Constructor(), new JodaTimeRepresenter(), options).dump(ObjectToPrint);
}
一切都很好,但是对于ObjectToPrint
结构中包含的某些对象,我得到的是参考名称,而不是真实的对象内容,例如。
!!com.blah.blah.ObjectToPrint
businessYears:
- businessYearMonths: 12
ppiYear: &id001 {
endDate: 30-06-2013,
endYear: 2013,
startDate: 01-07-2012,
startYear: 2012
}
ppiPeriod:
ppiYear: *id001
endDate: 27-03-2014
startDate: 21-06-2013
units: 24.000
number: 1
正如您从上面的示例中看到的那样,我ppiYear
打印了对象(标记为$id001
),并且使用了相同的对象,ppiPeriod
但只打印了引用名称,而不是对象内容。每次在我的结构中使用该对象时如何打印对象内容,我想将其转换为 yaml ( ObjectToPrint
)。PS。完全不打印参考名称会很好(&id001
)但这并不重要