J'ai le code suivant et je voudrais réaliser des fonctionnalités que / getjson retournera l'objet utilisateur comme JSON et / getjson2 retournera User2 en tant qu'objet JSON.
{"user2":{}}
3 Réponses :
Cette action fournit deux propriétés: utilisateur et utilisateur2. p>
Si la carte de getjson et / getjson22 sur cette classe d'action, ils répondront à la fois avec les propriétés disponibles: Utilisateur et User2. P>
Oui, c'est possible, la solution nécessite l'utilisation des paramètres incluant / exclure.
Suivant est un exemple. P>
Méthodes Getjson1 et Getjson2 Show includeparaMeters tandis que Getjson3 montre des exclutparamètres. P>
REMARQUE: Bien que l'exemple utilise des chaînes comme arguments pour inclure / exclure les paramètres, la chaîne est interprétée comme une expression régulière. Donc, je pourrais remplacer "string1, string2" sur Action3 avec "chaîne *". P>
Pour plus d'informations, voir: https://cwiki.apache.org/confluence/display/ww/json%20plugin p> ... / getjson2 strong> retourne {"string2": "Deux"} p> ... / getjson3 strong> retourne {"Autre": "Autre"} P> P>
Bonjour, j'ai modifié le code en fonction de votre exemple, mais je reçois maintenant une chaîne JSON vide, veuillez vous reporter à la mise à jour. Merci en avance.
Vous devez inclure toutes les propriétés que vous souhaitez sérialiser. Cela inclut les propriétés de la classe d'utilisateurs comme celle-ci, par exemple: mais, une autre forme pour obtenir ce travail pourrait utiliser des expressions régulières: P> @Action(value="/getJson", results = {
@Result(name="success", type="json",params = {
"includeProperties",
"user\..*"})})
Je ne peux pas voir le problème. J'arrêterais à ce jour les configurateurs (je ne sais pas si vous avez une magie de printemps pouvant causer de l'étrangeté), déplacez la création de l'utilisateur dans une méthode de préparation et vérifiez que les utilisateurs ne sont pas nuls (voir strats.apache.org/2.0.14/docs/prepare-interceptor.html ) Et ceci est juste des préférences personnelles, mais @json (nom = "utilisateur") lorsqu'il est appliqué à GetUserer est redondant, donc je me débarrasserais des annotations @json sur les getters.