Używam zależność:Jak mieć RecursiveToStringStyle i JSON_STYLE użyciu commons-lang3
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
mam następujące obiekty:
public Class X {
private String a;
private String b;
private Y y;
}
public Class Y {
private String c;
private String d;
}
I muszę zalogować zawartość klasy X rekursywnie, aby uzyskać klasę Y oraz styl JSON. To jest mój cel i taki jest cel tego pytania.
Sposób 1:
ToStringStyle style = ToStringStyle.JSON_STYLE;
LOGGER.debug(ReflectionToStringBuilder.toString(new X(), style, false, false));
Sposób 1 Wynik:
{"a":"<a>","b":"<b>","y": com.<packages>[email protected]<hash>}
Sposób 2:
RecursiveToStringStyle style = new RecursiveToStringStyle();
LOGGER.debug(ReflectionToStringBuilder.toString(new X(), style, false, false));
Sposób 2 Wynik:
[com.<packages>[email protected]<hash>[a=<a>,b=<b>,y=com.<packages>[email protected]<hash>[c=<c>,d=<d>]]
Udane Podejście:
`Merge of Approach 1 and Approach 2` but how to achieve this?
Pozytywny wynik Approach (Mój cel):
{"a":"<a>","b":"<b>","y":{"c":"<c>","d":"<d>"}}
Brzmi jak żądanie funkcji, które można złożyć ... Może być zaimplementowane jako podklasa programu RecursiveToStringStyle, podobnie do istniejącego MultilineRecursiveToStringStyle. – Thilo
Tak, już próbuję tego podejścia. Ale myślę, że musi istnieć lepszy sposób osiągnięcia mojego celu. Może używając innej zależności? – Leonel