在Grails REST中使用params获取JSON对象

时间:2012-04-04 22:16:14

标签: jquery json grails params

我是Grails的新手所以这可能是一个愚蠢的....但是我试图从Grails的jquery客户端使用Grails REST获取json对象,但我得到了null。可能是一个小小的沟壑,但它创造了我想测试的前几个数据流的障碍

我的jquery电话:

var jsonObjects = [{name: "IPAD", input: "IPAD", program: "IPAD", destination: "IPAD",    
priority: "IPAD", userData: "IPAD", email: "IPAD", webCallBackURL: "IPAD", copyToLocal:    
"IPAD", scriptPreProcess: "IPAD", deleteSource: "IPAD", moveToSource: "IPAD",    
scriptPostProcess: "IPAD", inputImage: "IPAD", leftImage: "IPAD", topImage: "IPAD", 
opacityImage: "IPAD", bImageAdAvBlanking: "IPAD"}] 

$.ajax({ 
    type: "POST", 
    url: 'http://localhost:8080/Medusa/jobControlREST/save', 
    data: {ipad: JSON.stringify(jsonObjects)}, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    beforeSend: function(x) { 
        if (x && x.overrideMimeType) { 
            x.overrideMimeType("application/json;charset=UTF-8?"); 
        } 
    },
    success: function() { 
        alert('hi'); 
    } 
}); 

我的Grails:

def save = { 
    def jsonString = params['ipad'] //returns null 
    def json = JSON.parse(jsonString) // returns null obviously 
    println "this is POST call" +json // gets printed but json is null...sign ( 
} 

urlmapping: 
    "/$controller/$action?/$id?"(parseRequest:true) {
        constraints { 
            action = [GET:"index", POST:"save", PUT:"update", DELETE:"remove"] 
        }
    }

1 个答案:

答案 0 :(得分:0)

使用此:

def jsonObject=request.JSON