Jaxb + jersey. Überspringen von null-Felder in den generierten json
Ich habe einen code:
return Response.status(Status.BAD_REQUEST).entity(errors).build();
Wo: Response
ist, kommt aus diesem Paket: javax.ws.rs.core
(jersey 1.9.1);
Wo die errors
ist Instanz von:
@XmlRootElement
public class UserInfoValidationErrors {
@XmlElement String username;
@XmlElement String email;
...
Dann habe ich JSON-Ergebnis wie dieses: {"username":null,"email":"Email is not valid"}
Ob es einen Weg gibt, wie um zu vermeiden, dass null
es?
InformationsquelleAutor ses | 2013-11-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn du Jersey verwenden, konfiguriert Jackson zu tun, ist es JSON-Serialisierung können Sie kommentieren Ihre model-Klassen mit:
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
Wenn Sie konfigurieren möchten, um Jersey zu verwenden Jackson, Sie können aktualisieren Sie Ihre web.xml wie folgt:
InformationsquelleAutor Michael Doyle
Verwenden
@XmlElement(nillable = true)
. Zumindest das funktioniert für die XML-Erzeugung, so glaube ich, sollte es für JSON als gut.@XmlElement(nillable=true)
wäre etwas, das würde ich geben, um Kraftnull
zu gemarshallt werden (siehe: blog.bdoughan.com/2012/04/...). Die Standard JAXB Verhalten ist nicht zu Marschall einen Knoten für null-Werte.Trotzdem ist es nicht Arbeit für meinen Fall. Vielleicht, weil ich nicht verwenden Marshalling direkt (jaxb) aber lassen Jersey tun.
Es scheint, das könnte die Antwort sein: stackoverflow.com/questions/12982199/... Aber ich verstehe immer noch nicht, wie Sie alle zusammen arbeiten.
Die Schnittstelle mit der die aufrufende Anwendung, die ich brauchte, um die null-Werte werden an den Aufrufer übergeben. Die oben genannte Lösung
@XmlElement(nillable=true)
für mich gearbeitet auf Jersey 2.17 Verwendung von JAXB und MOXy für die automatische Konvertierung zwischen einer mäßig komplexen Java-Objekt-und JSON - (und XML) - Serialisierung.InformationsquelleAutor AlexR