Jackson @JsonIgnore hat die Semantik geändert?

8

Wir haben gerade einige maven-Abhängigkeiten aktualisiert, die ein Update von Jackson von 1.7.x auf 1.9.x ausgelöst haben

Wir verwenden @ JsonIgnore für Setter-Methoden mit Methoden, die nicht auf Client-Seite gesetzt werden sollen. zum Beispiel: der Besitzer eines Objekts (mit sollte vom Authentifizierungsprinzipal gesetzt werden), etc.

Es scheint uns, dass sich die Semanthincs dieser Annotation geändert haben, ist das möglich? jetzt ist das Feld in jedem Fall jsonignored, und nicht nur beim Setzen.

ist das der Fall? Gibt es einen alternativen Weg in 1.9 zu implementieren ignorieren nur?

danke! r.

    
Rafael 15.02.2012, 19:09
quelle

1 Antwort

8

Ok, ich glaube, ich habe dieses Thema im Javadoc ausdrücklich erwähnt. (jackson Dokumentation ist nicht einfach zu durchlaufen).

  

Außerdem wird beginnend mit Jackson 1.9, wenn dies die einzige Annotation ist, die einer Eigenschaft zugeordnet ist, dies auch dazu führen, dass die gesamte Eigenschaft ignoriert wird: wenn also Setzer diese Annotation hat und Getter keine Annotationen hat, ist Getter auch effektiv ignoriert. Es ist immer noch möglich, dass verschiedene Accessoren unterschiedliche Annotationen verwenden; Wenn also nur "Getter" ignoriert werden soll, müssten andere Accessoren (Setter oder Feld) eine explizite Annotation benötigen, um Ignorieren zu verhindern (normalerweise JsonProperty).

    
Rafael 16.02.2012, 06:41
quelle

Tags und Links