J'utilise Resease et Hibernate pour revenir à la réponse à Jackson. J'ai un joueur de haricot ayant des champs: nom, id, âge, position. P>
Maintenant, je mettez en place deux Je veux dire, comment puis-je ajouter un champ pour une réponse et l'ignorer pour une autre réponse. P>
S'il vous plaît suggérer. P>
merci p> Obtenez CODE> Méthodes de repos pour la rétention JSON. P>
getplayer () code>, qui renvoie un lecteur: nom, identifiant, âge, position. P> Li>
getplayers () code>, qui renvoie une liste des joueurs, mais avec cette liste de joueurs, je ne veux pas retourner position. p> li>
ol>
3 Réponses :
Vous devez utiliser Vous devez utiliser une interface avec Vous pouvez en savoir plus ici:
http://www.jroller.com/rickhigh/entry/filtering_json_feeds_from_spring p> @jsonignore code> Annotation sur le pojo getter. P>
@jsonignoreproperties code> et le définir comme
@jsonfilter code> sur votre mappage de demande. P>
que je sais, mais je veux le même champ d'ignorer pour une réponse et un même champ à ajouter pour un autre
Comme indiqué dans le lien ... Je dois faire une interface Appdetailfilter () et utiliser @jsonfilter avec la demande. Mais je ne reçois pas ce qui devrait être en interface et comment l'utiliser pour ignorer différents champs pour une demande différente.
Ceci est juste une sorte d'interface marqueur qui n'a pas de méthodes. Vous pouvez configurer peu d'interfaces. Et puis vous mappez chaque demande avec cette interface.
Vous ne pouvez pas simplement sortir le champ de position?
Cela vous ouvre jusqu'à l'introduction d'un bogue si vous oubliez d'écrire le code à NULL out le champ. Utilisez @jsonignore code> de sorte que vous n'êtes pas obligé.
Comment cela résoudra-t-il l'exigence de l'OP "Comment puis-je ajouter un champ pour une réponse et l'ignorer pour une autre réponse". ? En outre, "oublier" de faire des choses lorsque vous codez toujours des bugs;)
Cela me semble la solution la plus simple, ainsi que d'ajouter @jsonignore à des propriétés qui doivent toujours être ignorées. Eiden, avez-vous trouvé une autre façon de le faire? Je n'aime pas la façon dont Jsonview et Jsonfilter peuvent être utilisés pour obtenir le même résultat.
Est-ce que ça marche? Parce que je pense que cela aussi, et j'ai fait mes enregistrements inutiles nuls avant de l'envoyer au ObjectMapper code> pour le convertir en JSON. MAPPER donne une erreur de pointeur NULL. Je pense qu'il s'agit de sous-champs de "produit" que j'ai défini null. Y a-t-il une solution pour cela?
Bien sûr, cela est plus une solution de contournement qu'une réponse, mais comme une solution rapide et sale, elle fonctionne au cas où l'annotation JSonfore n'est pas disponible pour une autre raison (si vous avez compilé Pojo, par exemple).
J'utilise Tomée, pour ignorer un champ dans la réponse JSON servlet p> objet p> réponse p> transitoire code> fonctionne pour moi, mais je ne sais pas si c'est la bonne façon d'aller (il n'y a pas de jackson visible à mon application , je viens d'inclure une API JeE-web):
Cette approche peut introduire des problèmes lors de l'utilisation de la persistance, je n'irais pas ainsi. D'autre part, si vous utilisez cet objet juste pour le transfert de données, cela devrait être bien.