Jackson - Propriété requise?
Je suis en utilisant Jackson readValue() la méthode sur un objet mappeur de lire à partir d'un fichier JSON et de le convertir en mon objet java.
par exemple.
mapperObject.readValue( node, MyTargetClass.class )
Sont là toutes les annotations que je peux mettre sur MyTargetClass pour appliquer les attributs requis? Par exemple, si j'ai un objet JSON avec des propriétés ABC,DEF et GHI, et mon Json est la suivante
{
"ABC" : "somevalue"
"DEF" : "someothervalue"
}
Je le veux à l'échec d'une certaine manière, et seulement de réussir sur le readValue si elle contenait ABC, DEF et GHI.
source d'informationauteur Ren
Vous devez vous connecter pour publier un commentaire.
Jackson n'inclut pas la fonctionnalité de validation, et c'est par la conception (c'est à dire qui est considéré comme hors-de-portée). Mais ce qui est habituellement utilisé est Bean Validation API mise en œuvre.
La bonne chose à ce sujet est le découplage entre le format de données de la manipulation, et la logique de validation.
C'est ce que les cadres comme DropWizard utilisation; et c'est le sens de JAX-RS (comme Jersey) prennent les choses pour JAX-RS 2.0.
Vous pouvez marquer une propriété, au besoin, avec le
@JsonProperty(required = true)
annotation, et qu'il va jeter un JsonMappingException lors de la désérialisation si la propriété est manquant ou null.Edit: j'ai reçu un downvote pour cela, sans commentaire. J'aimerais savoir pourquoi, puisque c'est exactement la bonne chose.
Peut-être Google GSON bibliothèque sera mieux répondre à vos besoins. Mais il a en face de condition: vous devez définir toutes les structures.