Warum funktioniert @JsonUnwrapped nicht für Listen?

9

Ich benutze Jackson 2.1.0. Gegeben:

%Vor%

Wenn die Eingabeliste http://test.com/ enthält, generiert Jackson:

%Vor%

anstelle von:

%Vor%

Irgendwelche Ideen?

UPDATE : Ссылка für eine ähnliche Diskussion.

>     
Gili 14.11.2012, 20:40
quelle

1 Antwort

16

In diesem Fall würden Sie am Ende versuchen, folgendes zu produzieren:

%Vor%

was kein legales JSON ist. @JsonUnwrapped entfernt nur eine Ebene des Umbruchs. Und obwohl es theoretisch möglich wäre, für "Arrays in Arrays" zu arbeiten, tut es das nicht. Und tatsächlich frage ich mich, ob das Hinzufügen dieses Features ein Fehler war: Vor allem, weil es die Verwendung fördert, die oft gegen datenverbindliche Best Practices (Einfachheit, Eins-zu-Eins-Mapping) ist.

Aber was stattdessen funktioniert, ist @JsonValue :

%Vor%

, was bedeutet, dass "Wert dieser Eigenschaft verwendet wird, anstatt das Objekt, das sie enthält, zu serialisieren".

Und die Erstellungsmethode würde so funktionieren, wie sie ist, und zwar weder @JsonUnwrapped noch @JsonProperty .

Hier ist der korrigierte Code:

%Vor%     
StaxMan 15.11.2012, 00:29
quelle

Tags und Links