À l'aide de jackson 2.1, comment désactiver le fail_on_empty beans
que le message d'erreur semble vouloir que je désactive?
Je suppose que c'est juste la chose la plus simple au monde, mais bon sang, il est tard et je n'ai pas été en mesure de trouver un tutoriel simple ou quelque chose de particulièrement évident dans le api
. SerializationFactory
? Pourquoi le rendraient-ils si peu intuitif et rendraient le message d'erreur si simple?
Bien que je fais comme le message d'erreur, je veux dire, il vaut mieux qu'un NPE.
Je suppose qu'il existe un moyen de le faire en utilisant des annotations - mais je ne suis pas du tout enclin à les utiliser pour le travail simpliste que je fais!
@JsonSerialize
pour désactiver laFAIL_ON_EMPTY_BEANS
déclaration de classe?Si vous utilisez Spring Boot, vous pouvez définir la propriété suivante dans le fichier application.properties. spring.jackson.serialization.FAIL_ON_EMPTY_BEANS = false
la source
Vous pouvez également obtenir le même problème si votre classe ne contient aucune méthode / propriété publique. J'ai normalement des DTO dédiés aux requêtes et réponses d'API, déclarés publics, mais j'ai oublié dans un cas de rendre les méthodes également publiques - ce qui a provoqué le bean "vide" en premier lieu.
la source
Vous pouvez aussi probablement annoter la classe avec
@JsonIgnoreProperties(ignoreUnknown=true)
pour ignorer les champs non définis dans la classela source
Si vous souhaitez obtenir un objet JSON sans aucun champ supplémentaire - veuillez ajouter cette annotation à votre classe, cela a parfaitement fonctionné pour moi.
Vous pouvez également ajouter cette ligne dans votre fichier application.properties, mais cela ajoutera un champ supplémentaire à votre JSON.
la source
Si vous utilisez org.codehaus.jackson.map.ObjectMapper, alors pls. utilisez les lignes suivantes
la source
Dans Jersey Rest Services, utilisez simplement l'annotation JacksonFeatures ...
la source
Dans mon cas, j'ai manqué d'écrire l'annotation @JsonProperty dans l'un des champs qui causait cette erreur.
la source
Ajout d'une solution ici pour un problème différent, mais qui se manifeste avec la même erreur ... Faites attention lors de la construction de json à la volée (en tant que réponses API ou autre) pour éviter les guillemets doubles littéraux dans vos membres de chaîne. Vous consommez peut-être votre propre json malformé.
la source
Pour résoudre ce problème, configurez votre classe JsonDataFormat comme ci-dessous
ce qui est presque équivalent à,
la source
Salut,
Quand j'utilise
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false)
Mes valeurs d'objet json viennent `` vides dans la page angulaire signifie en réponse
Résolu à l'aide des paramètres ci-dessous uniquement
la source
Dans mon cas, je n'avais pas besoin de le désactiver, je devais plutôt mettre ce code au-dessus de ma classe: (et cela a résolu mon problème)
la source