Ben nesne (I örn baskı teselli etmeye hangi.)Java SnakeYaml - Referans isimlerini damping önlemek
@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);
}
Tüm iyi, ama bazıları için yaml
temsil dönüştürülür almak için kullandığınız aşağıdaki yöntemi var ObjectToPrint
yapısında bulunan nesne, gerçek nesne içeriği gibi referans adı gibi bir şey elde ediyorum.
!!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
I ($id001
olarak işaretli) baskılı ppiYear
nesne vardır ve aynı nesne ppiPeriod
kullanılır ve sadece referans adı değil nesne içeriği basılır Yukarıdaki örnekte de görüldüğü gibi. Nesne içeriğim, bu nesneyi, yamlüme dönüştürülmesini istediğim yapı içinde kullanırım (ObjectToPrint
). PS. Referans ismini (&id001
) basmamak iyi olur ama bu önemli değil.
Sadece çok yorum ** (this.serializedNodes.contains (düğüm)) { this.emitter.emit halinde (yeni AliasEvent (tAlias, boş, boş)); } else {} serializeNode yönteminden ** ve anchorNode (düğüm); ** serialize yönteminden. Bu çapa ve takma adlar oluşturmayı engelledi. – Ajeesh
OP'nin sorduğu şey budur :-). Bazı sınıflar için yalnızca ref tespitini kapatmak için myHook'u doğru bir şekilde uygulamanız gerekir. –