Graal : Comment accéder à la params à venir en tant que format JSON
à partir d'une application PHP il y a appel à graal contrôleur qui envoie des données au format JSON.
quand je println les params
println params
qui imprime
[{"courseCategory":null,"courseId":null,"show":null,
"rows":6,"trainers":null,"courses":null,"cities":null,
"fromDate":null,"toDate":null,"pageType":"HOME","deal":null}:,
action:getTrainingsAsJson,
controller:publicTraining]
quand je fais
println params.rows
println params.pageType
qui imprime null
j'ai essayé
def jsonObject = request.JSON //prints [:]
J'ai aussi essayé avec JsonSlurper
def slurper = new JsonSlurper()
def result = slurper.parseText(params)
qui donne une erreur
No signature of method: groovy.json.JsonSlurper.parseText() is applicable for argument types: (org.codehaus.groovy.grails.web.servlet.mvc.GrailsParameterMap)
comment faire pour convertir extraire les param valeurs?
ou est-il un moyen de le convertir à la carte afin que je puisse facilement accéder aux paramètres?
Que voyez-vous avec
La println déclaration ci-dessus montre invalid JSON, êtes-vous sûr que ce que vous obtenez?
C'est un peu tard, mais pour la postérité: c'est en fait montrer la
println params.dump()
?La println déclaration ci-dessus montre invalid JSON, êtes-vous sûr que ce que vous obtenez?
C'est un peu tard, mais pour la postérité: c'est en fait montrer la
params
carte Graal a construit à partir des paramètres de la requête. Parce que monda JSON n'a pas été envoyé en tant que paramètre, le Graal n'ai pas de nom à attribuer à l'JSON et plutôt comme la clé d'une carte d'entrée.OriginalL'auteur monda | 2013-10-03
Vous devez vous connecter pour publier un commentaire.
Si c'est une requête POST puis le JSON peut être récupéré à partir de
request
commeetc
Qu'est-ce que voir à partir de la demande les valeurs sont envoyées
null
de la part du client. Vérifier la charge utile.OriginalL'auteur dmahapatro
On dirait que vous êtes l'envoi de vos données sans clé, comme
l'envoyer avec quelques clés comme
puis d'obtenir la valeur, comme
Essayer ce..,.
contentType
sur l'envoi à la fin car il serait la cause de la Zendesk cadre d'envoyer une "OPTIONS" de l'en-tête, qui Graal 2.2.0 ne pas correspondre correctement. Donc, le Graal ne pouvais pas automatiquement unmarshall le JSON params. Simplement en faisant mes données dans un paramètre réel fonctionne comme un charme. Merci!OriginalL'auteur MKB
Au cas où quelqu'un est en cours d'exécution dans un problème avec l'appel de
request.JSON
et la réception null -- assurez-vous que vous définissez explicitement ledataType
etcontentType
, et envoyer les données en JSON. Par exemple, à l'aide de jQuery:OriginalL'auteur Igor
Prendre un coup d'oeil à JsonSlurper. Comme vous allez le voir, vous devez d'abord analyser le fichier JSON et ensuite accéder à tous les champs de JSON dans l'accès à la propriété de la notation.
Mise à jour de ma question. plz ont un coup d'oeil
Comment cette approche de travail pour les collections imbriquées?
OriginalL'auteur JBaruch
Graal analyse automatiquement/unmarshals le JSON et vous pouvez y accéder via la requête.JSON dans votre contrôleur. L'objet renvoyé est de type JSONObject et il permet à la carte-le style de l'accès aux propriétés. Vous pouvez également utiliser directement cette JSONObject pour la liaison de données
comme
myInstance.properties = jsonObject
elle ne reçoit pas de valeur null
Cette réponse, c'est exactement copié et collé à partir de stackoverflow.com/a/3034436/1291122 Il serait plus éthique pour au moins donner des crédits à l'auteur de cette réponse si vous copiez et coller le comme il est.
OriginalL'auteur TP_JAVA
def jsonObject = request.JSON def instance = new YourDomainClass(jsonObject)/extensions/default{"sitekey": "your_site_key", "theme": "la lumière"}.
OriginalL'auteur dom anderson