J'ai un repos WS pour mettre à jour un objet de haricot qui reçoit une chaîne JSON en tant qu'entrée.
class ABean { public BBean b; public CBean c; public String d; }
4 Réponses :
Je suppose de votre description que vous ne pouvez pas simplement utiliser l'annotation regarder en utilisant JAKSON MIX-INS : Mix-INS vous permet de remplacer une définition de classe - avec les annotations nécessaires - pour la liaison de données. Pendant la sérialisation, vous pouvez choisir une définition de classe de mélange particulière à stand dans em> pour la classe actuelle étant sérialisée. Définissez un ensemble de mélanges pour gérer tous les cas, puis choisissez qui est approprié lorsque vous serifiez un haricot particulier. P> @jsonignore code> pour empêcher les champs d'être sérialisés pour chaque classe particulière. P>
Je pense que cela a le même pouvoir que je puisse obtenir en utilisant des vues. Et si j'ai un ensemble de rôles dynamiques, j'entraîne d'une base de données avec leurs autorisations et que je veux filtrer en fonction de ces règles?
Vous pouvez utiliser @jsonignoreType pour ignorer une classe / interface / Enum Java de Serializing. De plus, vous pouvez utiliser @jsonignoreProperties pour ignorer une liste de propriétés et @jsonignore pour une propriété spécifique p>
Ceci est valable uniquement pour le filtrage statique (compilé)
La solution la plus puissante, la plus rapide et la plus facile que j'ai proposée est de filtrer simplement l'arborescence Jsonnode obtenue à partir de la désérialisation, puis passez le résultat filtré à la lecture en direct. Quelque chose comme ça:
Un autre moyen est d'utiliser beanDeserializermodificateur: Vous pouvez enregistrer le modfier à l'objetMapper avec: p> alors les propriétés définies sont alors les propriétés définies. ignoré. Vous pouvez ignorer la méthode UpdateBuilder si vous utilisez l'annotation @jsonaNaNetter. P> Salutations,
Martin P> P>
Merci! J'ai rencontré le même problème que l'affiche originale et croire que cela devrait être la réponse acceptée, car elle prend en charge de supprimer de manière sélective les propriétés basées sur le type de classe.
Comment enregistrer le modificateur avec Jersey?