7
votes

Jackson2ObjectMapperBuilder Activer la visibilité sur le terrain

J'utilise le démarrage à ressort et je veux personnaliser l'objetMapper créé.

Ce que je veux faire, c'est être capable de sérialiser des objets qui n'ont pas de getter ou de setters. Avant que cela puisse être fait en mettant JSONAUTODECTECT.Visibilité.Touille sur l'ObjectMapper.

Mais comment puis-je activer cette fonctionnalité à l'aide du haricot Jackson2ObjectMapperBuilder, je expose actuellement?


0 commentaires

3 Réponses :


9
votes

Vous pouvez utiliser un jackson2ObjectMapperbuilder la sous-classe qui remplace la méthode configuration (objet> Configurer (ObjectMapper) : xxx


4 commentaires

L'application ne parvient pas à commencer par Boot 1.4.0 et ce causé par: java.lang.nullpointereException: null à org.springframework.data.rest.core.uritoentityconverter. (Uritoentityconver Ter.java: 71) ~ [Spring-Data-Data-Rest-Core-2.5.2.Release.jar: Na]


Regardant la ligne avant que ... persistéentalité entité = entités.getpersistententité (bruttype); bruttype est jsondeSerializer . ..


Il semble que de définir jackson2objectmapperbuilder comme sous-classe


Cette méthode désactivera tout jackson2ObjectMapperbuilderCustomizer appliqué dans l'original jackson2Objectmapperbuilder méthode de haricot ( jacksonautoconfiguration.java )



7
votes

Si vous souhaitez conserver l'ObjectMapper configurable via le Spring.Jackson. * Propriétés fournies par Spring Boot fournit, alors vous feriez mieux de ne pas définir votre propre haricot Jackson2ObjectMAPPerbuilder (Vérifiez JacksonObjectMapperbuilder dans la classe JacksonAutoconfiguration pour plus de détails).

Qu'est-ce que vous avez peut faire à la place est ceci: xxx


1 commentaires

Je devais exclure HyperMediAutoconfiguration de cette solution pour travailler, voir Dépendance SpringFox brisant mon Contexte de printemps



1
votes

Je passe une journée à jouer avec différents contextes. Donc, je parviens à le travailler (1.3.2.Release) lorsque:

  • i Configurez Jackson dans Simple @Configuration Code> Classe de configuration annotée (non étendue à partir de WebMVCConfigureAdapter code>) Li>
  • Je n'ai pas @enablewebmvc code> li> ul>

    alors jackson2objectmapperbuilder objetPerbuilder code> solution est travail, mais printemps.jackson.serialization.indent_output: true code> dans les propriétés ignorés. p>

    enfin, j'ai fini avec p>

     @Autowired(required = true)
     public void configeJackson(ObjectMapper objectMapper) {
         objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE)
                .setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
     }
    


0 commentaires