mon*_*nda 5 grails groovy json
从PHP应用程序调用grails控制器,它以JSON格式发送数据.
当我打印params
println params
Run Code Online (Sandbox Code Playgroud)
打印
[{"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]
Run Code Online (Sandbox Code Playgroud)
当我做
println params.rows
println params.pageType
Run Code Online (Sandbox Code Playgroud)
打印 null
我试过了
def jsonObject = request.JSON // prints [:]
Run Code Online (Sandbox Code Playgroud)
我也尝试过 JsonSlurper
def slurper = new JsonSlurper()
def result = slurper.parseText(params)
Run Code Online (Sandbox Code Playgroud)
这给出了错误
No signature of method: groovy.json.JsonSlurper.parseText() is applicable for argument types: (org.codehaus.groovy.grails.web.servlet.mvc.GrailsParameterMap)
Run Code Online (Sandbox Code Playgroud)
如何转换它来检索参数值?
或者有没有办法将其转换为地图,以便我可以轻松访问参数?
如果是POST请求,则可以从request
as 检索JSON
request.JSON
request.JSON.courseCategory
Run Code Online (Sandbox Code Playgroud)
等等
从请求中看到的是null
从客户端发送的值.验证有效负载.
[{"courseCategory":null,...,"deal":null}:, action:getTrainingsAsJson, controller:publicTraining]
Run Code Online (Sandbox Code Playgroud)
您似乎在没有密钥的情况下发送数据,例如
data: JSON.stringify({"courseCategory":null,...,"deal":null}),
Run Code Online (Sandbox Code Playgroud)
用一些关键字发送它
jQuery.ajax({
url: '${g.createLink(action: 'asd')}',
type: 'post',
dataType: 'json',
data: "sendData=" + JSON.stringify({"courseCategory":null,"courseId":null,"show":null, "rows":6,"trainers":null,"courses":null,"cities":null, "fromDate":null,"toDate":null,"pageType":"HOME","deal":null}),
success: function (data) {
console.debug(data);
}
});
Run Code Online (Sandbox Code Playgroud)
然后获得价值
def data = JSON.parse(params.sendData)
def rows = data.rows
Run Code Online (Sandbox Code Playgroud)
试试这个..,.
归档时间: |
|
查看次数: |
12415 次 |
最近记录: |