Comment ajouter et ignorer un champ de réponse json
Je suis en utilisant RestEasy et mise en veille prolongée pour revenir réponse à Jackson.
J'ai un haricot Joueur ayant champs: le nom, l'âge, la position.
Maintenant, je suis la mise en œuvre de deux GET
reste méthodes pour returing json.
-
getPlayer()
, qui est de retour d'un joueur: le nom, l'âge, la position. -
getPlayers()
, qui est de retourner une liste de joueurs, mais avec cette liste de joueurs, je ne veux pas de retour de position.
Je veux dire, comment puis-je ajouter un champ pour une réponse et de l'ignorer pour une autre réponse.
S'il vous plaît suggérer.
Grâce
OriginalL'auteur Romi | 2012-01-17
Vous devez vous connecter pour publier un commentaire.
Ne pouvez-vous pas simplement nulle la position de champ?
@JsonIgnore
de sorte que vous n'avez pas à.Comment résoudre les OP à l'exigence du "Comment puis-je ajouter un champ pour une réponse et de l'ignorer pour une autre réponse." ? En outre, les "oublier" de faire des choses quand on code sera toujours provoquer des bugs 😉
Cela semble la solution la plus simple pour moi, avec l'ajout de @JsonIgnore des propriétés qui doivent toujours être ignoré. Eiden, avez-vous trouvé un autre moyen de le faire? Je n'aime pas la façon dont JsonView et JsonFilter peut être utilisé pour obtenir le même résultat.
est-ce de travailler? parce que je pense que trop, et j'ai fait mon les enregistrements inutiles null avant de me l'envoyer à l'
ObjectMapper
pour le convertir en JSON. Mappeur donne pointeur null erreur. Je pense que c'est sur les champs de "produit" que j'ai mis la valeur null. Est-il une solution pour cela?Bien sûr, ce n'est plus une solution de contournement de la réponse, mais comme un moyen rapide et sale de la solution, il fonctionne dans le cas où le JsonIgnore annotation n'est pas disponible pour une autre raison (si vous avez compilé pojo par exemple).
OriginalL'auteur eiden
Vous devez utiliser
@JsonIgnore
annotation sur le POJO getter.http://jackson.codehaus.org/1.0.1/javadoc/org/codehaus/jackson/annotate/JsonIgnore.html
Mise à jour:
Vous devez utiliser l'interface avec
@JsonIgnoreProperties
et le définir comme@JSONFilter
sur votre Demande de cartographie.Vous pouvez en lire plus à ce sujet ici:
http://www.jroller.com/RickHigh/entry/filtering_json_feeds_from_spring
Ok, alors voir ma mise à jour
comme indiqué dans le lien... j'ai besoin de faire une interface AppDetailFilter(), et d'utiliser @JsonFilter avec la demande. mais je ne suis pas d'obtenir ce qui devrait être dans l'interface, et comment l'utiliser pour ignorer diffrent des champs pour la requête différente.
C'est juste une sorte de marqueur de l'interface qui n'a pas de méthodes. Vous pouvez configurer quelques interfaces. et puis vous associez chaque demande avec cette interface.
OriginalL'auteur danny.lesnik
Je suis en utilisant tomee, d'ignorer un champ de réponse json
transient
fonctionne pour moi, mais je ne sais pas si c'est la bonne façon de procéder (il n'est pas jackson visible à mon application, j'ai juste compris jee-api web):Servlet
Objet
Réponse
OriginalL'auteur wutzebaer