Grails - grails.converters.JSON - enlever le nom de la classe
Est-il un moyen pour supprimer le champ de la classe dans un JSON convertisseur?
Exemple:
import testproject.*
import grails.converters.*
emp = new Employee()
emp.lastName = "Bar"
emp as JSON
comme une chaîne de caractères est
{"class":"testproject.Employee","id":null,"lastName":"Bar"}
Je préfère
{"id":null,"lastName":"Bar"}
Est-il un moyen d'ajouter une ligne de code à la fin pour supprimer le champ de la classe?
source d'informationauteur BuddyJoe
Vous devez vous connecter pour publier un commentaire.
Ici est encore une façon de le faire.
J'ai ajouté un code pour le domaine de la classe:
Mais comme je l'ai trouvé, si vous avez utilisé Groovy @ToString de la classe annotation lorsque vous devez également ajouter classe exclut paramètre, par exemple:
Mon préféré façon de faire:
Ce sera le retour de tous les objets du Livre.getAllBoks (), mais la collecte à la méthode va changer TOUT dans le format que vous spécifiez.
Une alternative est de ne pas utiliser le générateur:
C'est un peu moins orthogonale puisque vous aurez besoin de changer votre rendu si l'Employé change; d'autre part, vous avez plus de contrôler ce qui est rendu.
@wwarlock la réponse est en partie raison, je dois mettre le registerObjectMarshaller sur Bootstrap, il peut travailler.
Cela fonctionne pour moi. Vous pouvez facilement passer en toute propriété à exclure. Ou tourner autour de:
Méfiez-vous: Ce n'est que pour des objets simples. Si vous voyez des "Égarés clés: mode de CLÉ, mais a été l'OBJET" cette solution n'est pas pour vous. 🙂
HP
Vous pouvez personnaliser les champs à être exclus (y compris le nom de la classe) à l'aide de la setExcludes méthode fournie dans le graal.convertisseurs de.JSON
et puis, vous pouvez l'utiliser comme fonction de vos besoins,