Mit @JsonView mit Spring MVC
Bin ich über die folgende bean-definition, um meine spring-app reden im JSON -
<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
Ist es möglich, mit dieser Nachricht converter bean-der @JsonView annotation?
- nur zu deiner information, ich landete schließlich schreiben meiner eigenen Ansicht
Du musst angemeldet sein, um einen Kommentar abzugeben.
@JsonView
ist bereits unterstützt in der Jackson JSON Processor von v1.4 und höher.Neuer Edit: Aktualisiert Jackson 1.9.12
Nach dem v1.8.4 Dokumentation der Funktion war ich mit
writeValueUsingView
ist jetzt Veraltet ObjectMapper Nutzen.viewWriter(java.lang.Class) statt... aber das wurde auch Veraltet Seit 1.9, nutzen writerWithView(Klasse) statt! (siehe v1.9.9 Dokumentation)So, hier ist ein Aktuelles Beispiel, getestet mit Spring 3.2.0 und Jackson 1.9.12 die einfach zurück
{id: 1}
und nicht die extended{name: "name"}
da ist es mit der.writerWithView(Views.Public.class)
. Der Wechsel zuViews.ExtendPublic.class
führt{"id":1,"name":"name"}
Vorherigen Edit: müssen Sie instanziieren die
ObjectMapper
und schreiben Sie das Objekt mithilfe einer benutzerdefinierten Ansicht als gezeigt hier, oder in diesem Beispiel:Ansichten definieren:
Views:
Wenn Sie mit Jackson >= 1.7, finden Sie vielleicht, dass die
@JSONFilter
besser zu Ihren Bedürfnissen passt.@JSONFilter
was könnte besser sein für Sie. Da das Beispiel in meiner Antwort immer schreiben JSON-formatierte Ausgabe. Wenn Sie brauchen, unterstützen Sie andere Ausgabeformate dies wird nicht für Sie arbeiten.@JsonView Anmerkung wurde nicht unterstützt, auf den Frühling, aber dieses Problem ist gelöst!
Folgen Sie diese
Dies ist die SPR-7156.
Verfügbar auf Frühling ver >= 4.1
Danke Feder!