Spring unterstützt @JsonView
seit Version 4.1.
Eine Spring-Contoller-Methode (mit @RestController
annotiert) mit @JsonView
, die mehrere Bezeichner enthält, wurde mit der folgenden Ausnahme versehen:
Offenbar entsprechend der JsonViewResponseBodyAdvice
s Javadoc gilt Folgendes:
Beachten Sie, dass trotz @JsonView mehr als eine Klasse zulässig ist angegeben, wird die Verwendung für einen Antworttext nur unterstützt mit genau ein Klassenargument. Berücksichtigen Sie die Verwendung einer zusammengesetzten Schnittstelle.
Gleichfalls, wenn das Methodenargument eines Controllers (mit @RequestBody
annotiert) ebenfalls mit @JsonView
versehen wird, das mehrere Bezeichner hat; nach dem JsonViewRequestBodyAdvice
s Javadoc :
Beachten Sie, dass trotz @JsonView mehr als eine Klasse zulässig ist angegeben, wird die Verwendung für eine Anfrage Körperberatung nur unterstützt mit genau ein Klassenargument. Berücksichtigen Sie die Verwendung einer zusammengesetzten Schnittstelle.
Weiß jemand, ob eine Reparatur geplant ist? Meine aktuelle Frühlingsversion ist 4.2.4.
Dies wäre äußerst nützlich, um JSON-Ansichten für öffentliche, private (erweiterte öffentliche), zusammenfassende und detaillierte (erweiterte) Ansichten zu erstellen und diese dann in den Controller-Methoden zu kombinieren!
Wie in der Jackson JsonView-Dokumentation erklärt, "kann nur eine aktive Ansicht pro Serialisierung verwendet werden, aber aufgrund der Vererbung von Ansichten können Ansichten kombiniert werden via Aggregation ".
Konkret, wenn Sie sowohl Foo
als auch Bar
JsonViews verwenden möchten, definieren Sie eine FooBar
-Schnittstelle, die sie wie folgt kombiniert:
Sie können dann Ihre Felder mit @JsonView(Foo.class)
oder @JsonView(Bar.class)
annotieren und @JsonView(FooBar.class)
auf Controller-Ebene verwenden.
Tags und Links spring jackson spring-mvc