Jaxb + jersey. Sauter les champs null généré json
J'ai un code:
return Response.status(Status.BAD_REQUEST).entity(errors).build();
Où: Response
vient de ce package: javax.ws.rs.core
(jersey 1.9.1);
Où la errors
est l'exemple de:
@XmlRootElement
public class UserInfoValidationErrors {
@XmlElement String username;
@XmlElement String email;
...
Puis j'ai JSON résultat de ce genre: {"username":null,"email":"Email is not valid"}
Si il ya un moyen pour éviter d'avoir null
?
OriginalL'auteur ses | 2013-11-19
Vous devez vous connecter pour publier un commentaire.
Si vous avez Jersey configuré pour utiliser Jackson pour faire de la sérialisation JSON, vous pouvez annoter vos classes de modèle:
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
Si vous souhaitez configurer Jersey à utiliser Jackson, vous pouvez mettre à jour votre web.xml comme suit:
OriginalL'auteur Michael Doyle
Utilisation
@XmlElement(nillable = true)
. Au moins cela fonctionne pour la génération XML, donc je pense qu'elle doit travailler pour JSON.@XmlElement(nillable=true)
serait quelque chose que je voudrais préciser à forcenull
être placés (voir: blog.bdoughan.com/2012/04/...). La valeur par défaut JAXB comportement n'est pas au maréchal un nœud pour les valeurs null.De toute façon il ne fonctionne pas pour mon cas. Peut-être parce que je n'utilise pas de marshaling directement (par jaxb) mais laissant Jersey ce faire.
Il semble que ce pourrait être la réponse: stackoverflow.com/questions/12982199/... Mais je ne comprends toujours pas, comment les faire travailler ensemble.
Pour l'interface avec l'application appelante j'avais besoin pour les valeurs null pour être transmis à l'appelant. La solution ci-dessus
@XmlElement(nillable=true)
a fonctionné pour moi sur le Maillot 2.17 utilisation de JAXB et MOXy pour la conversion automatique entre un modérément complexe d'objet Java et JSON (et XML) de sérialisation.OriginalL'auteur AlexR