JSON Jackson analysiert verschiedene Schlüssel in demselben Feld
Habe ich ein POJO, die hat ein Feld:
public class Media {
private Asset asset;
}
Alles perfekt funktioniert beim Parsen einer json-Antwort in dieser asset-POJO. aber dennoch gibt es einen leichten Unterschied mit dem Schlüssel diese Anlage kommt mit. Es kann entweder sein:
@JsonProperty("cover_asset")
oder
@JsonProperty("asset")
Gibt es eine Möglichkeit, mit dem POJO zu erkennen, in diesem Fall und de-Serialisierung in das gleiche Feld. Nicht möglich für Sie beide erscheinen in der gleichen Antwort.
InformationsquelleAutor der Frage DArkO | 2013-10-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mehr kurz und bündig, ich würde vorschlagen, mit zwei separaten @JsonSetter Anmerkungen. Hier ist ein funktionierendes Beispiel. Dies bedeutet, dass Ihre java-Klasse nur noch eine getter-Methode für die Eigenschaft anstelle von zwei. Sie können auch die setter, die Sie nicht wollen, ausgesetzt zu Kunden von Media private und Behandlung einer der json-Schlüssel in einer speziellen Art und Weise.
InformationsquelleAutor der Antwort whaley
Naja, nur Deserialisierung ist Ihre Sorge,
@JsonAlias
eingeführt2.9
ist perfekt für diese situation. Können Sie etwas wie das hier tun:@JsonAlias
docs:Hinweis: Stellen Sie sicher, aktualisieren Sie alle zugehörigen Abhängigkeiten (
annotations
core
databind
), wenn man Sie benutzt. Aktualisierung nurannotations
ohne andere warf mir runtime error.InformationsquelleAutor der Antwort Vikas Prasad
Ich würde vorschlagen, zu verwenden, Getter/setter, für beide Namen der Eigenschaft, die auf die gleichen POJO-Feld.
Siehe auch meine Antwort auf mögliche doppelte Frage:
Verschiedene Namen der JSON-Eigenschaft während der Serialisierung und Deserialisierung
InformationsquelleAutor der Antwort DRCB