@JsonView
wird bereits ab Version 1.4 im Jackson JSON-Prozessor unterstützt.
Neu Bearbeiten: Aktualisiert für Jackson 1.9.12
Laut v1.8.4 Dokumentation Die Funktion, die ich writeValueUsingView
verwendet habe, ist jetzt Veraltet Verwenden Sie ObjectMapper.viewWriter ( java.lang.Class) stattdessen ... aber das war auch Veraltet Seit 1.9 benutze stattdessen writerWithView (Class) ! (Siehe v1.9.9 Dokumentation )
Hier ist ein aktuelles Beispiel, getestet mit Spring 3.2.0 und Jackson 1.9.12, welches einfach {id: 1}
zurückgibt und nicht das erweiterte {name: "name"}
, da es .writerWithView(Views.Public.class)
benutzt. Der Wechsel zu Views.ExtendPublic.class
führt zu {"id":1,"name":"name"}
Vorherige Bearbeitung: Sie müssen die ObjectMapper
instanziieren und das Objekt mit einer benutzerdefinierten Ansicht ausschreiben, wie in angezeigt hier oder in diesem Beispiel:
Ansichten definieren:
%Vor%Verwenden Sie Ansichten:
%Vor% Wenn Sie Jackson & gt; = 1.7 verwenden, stellen Sie möglicherweise fest, dass @JSONFilter
Ihren Anforderungen besser entspricht.
@JsonView-Annotation wurde für Spring nicht unterstützt, aber dieses Problem wurde behoben!
Folgen Sie diesem
Fügen Sie Unterstützung für Jackson-Serialisierungsansichten hinzu
Spring MVC unterstützt nun Jackons Serialisierungsansichten zum Rendern verschiedene Teilmengen desselben POJO von verschiedenen Controllern Methoden (z. B. detaillierte Seite vs Übersichtsansicht). Problem: SPR-7156
Dies ist die SPR-7156 .
Status: Gelöst
Beschreibung
Jacksons JSONView Annotation erlaubt dem Entwickler zu kontrollieren, welche Aspekte einer Methode serialisiert werden. Bei der aktuellen Implementierung muss der Jackson-View-Writer verwendet werden, aber der Inhaltstyp ist nicht verfügbar. Es wäre besser, wenn als Teil der RequestBody Annotation eine JSONView angegeben werden könnte.
Verfügbar unter Frühling ver & gt; = 4.1
Danke Frühling!
Tags und Links java spring java-ee json spring-mvc