2017-09-14 3 views
-1

J'ai une classe javaComment utiliser Jackson serialise conditionnellement les champs d'un POJO

public class CategoryItem implements Serializable { 
    private Long id;    

    private String name;   

    private Manager manager; 
} 

Dans un cas, je dois convertir tous les champs JSON. dans l'autre cas, je n'ai besoin que de 'id' et 'name' Comment puis-je faire?

Donnez-moi quelques tips.Thanks

+0

Vous n'avez trouvé aucun article? – soorapadman

+0

définir un champ indésirable null – passion

+0

Possible dupliquer de [Ignorer les nouveaux champs sur les objets JSON en utilisant Jackson] (https://stackoverflow.com/questions/5455014/ignoring-new-fields-on-json-objects-using-jackson) –

Répondre

0

annoter votre POJO id et name attributs avec @JsonProperty et gestionnaire avec @JsonIgnore

Lorsque vous voulez juste id et name, utilisez un défaut ObjectMapper. Lorsque vous voulez tous les champs, utilisez un ObjectMapper personnalisé par question/answer.

0

Il y a plusieurs façons de le faire:

  1. jeu champ non désiré à null, et d'utiliser l'annotation @JsonInclude(Include.NON_NULL) au niveau de la classe.

  2. de fournir SimpleBeanPropertyFilter, tout en utilisant ObjectMapper et d'utiliser l'annotation @JsonFilter(<filter_name>) au niveau de la classe.

  3. utilisez un sérialiseur personnalisé.