146 votes

Comment désactiver fail_on_empty_beans dans Jackson ?

Si j'utilise jackson 2.1, comment puis-je désactiver l'option d'accès à l'Internet ? fail_on_empty beans que le message d'erreur semble vouloir que je désactive ?

Je suppose que c'est la chose la plus simple du monde, mais il est tard et je n'ai pas été en mesure de trouver un tutoriel simple ou quelque chose de particulièrement évident à partir de la page d'accueil du site. api . SerializationFactory ? Pourquoi le rendre si peu intuitif et faire en sorte que le message d'erreur semble si simple ?

Bien que je hacer comme le message d'erreur, je veux dire, c'est mieux qu'un NPE.

Je suppose qu'il y a un moyen de le faire en utilisant des annotations - mais je n'ai pas du tout envie de les utiliser pour le travail simpliste que je fais !

7voto

Dans les services de restauration de Jersey, il suffit d'utiliser l'annotation JacksonFeatures ...

@JacksonFeatures(serializationDisable = {SerializationFeature.FAIL_ON_EMPTY_BEANS})
public Response getSomething() {
    Object entity = doSomething();
    return Response.ok(entity).build();
}

5voto

Reddeiah Pidugu Points 154

Pour résoudre ce problème, configurez votre classe JsonDataFormat de la manière suivante

ObjectMapper mapper = new ObjectMapper();
mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);

ce qui est presque équivalent à,

mapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false);

4voto

InterNerd Points 133

Je ne comprends pas bien la raison de cette exception, mais pour les projets Spring Boot, l'ajout de ce qui suit au fichier de propriétés fonctionne très bien

application.yml

spring:
  jackson:
   serialization:
     FAIL_ON_EMPTY_BEANS: false

application.properties

spring.jackson.serialization.FAIL_ON_EMPTY_BEANS = false

3voto

Wahib Haq Points 390

Dans mon cas, j'ai omis d'écrire l'annotation @JsonProperty dans l'un des champs, ce qui a provoqué cette erreur.

3voto

thangamanikasi Points 534

Si vous utilisez org.codehaus.jackson.map.ObjectMapper, alors veuillez utiliser les lignes suivantes

mapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X