如何从jQuery发送数组并在grails控制器中显示它?

时间:2015-02-04 13:08:38

标签: jquery ajax grails

我有一个数组,其中包含一个名为" winList"的jquery中的10个数字的数组。我使用ajax将它从jquery发送到WinnerController:

$.ajax({
    url: "/demoapp/winner/winners",
    type: "POST",
    data: { "winnerList": winnerList },
    success: function(data) {
        alert("Successfully sent winnerList")
    },
});

现在我在控制器内使用"获胜者"功能如:

def winners(){
    print params
}

我的结果为:

[winnerList[0][]:076, winnerList[1][]:118,winnerList[2][]:102, .....winnerList[9][]:18, action:winners, format:null, controller:winner]

但我想要的结果只是数字而不是我无法访问的这种结构。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:12)

首先将数组转换为json:

...
data: { "winnerList": JSON.stringify(winnerList) },
...

然后在动作中解析这个json:

def slurper = new JsonSlurper()
def result = slurper.parseText(params.winnerList)

答案 1 :(得分:2)

我为自己的问题找到了解决方案.... 在jquery:

............
data: { "winnerList": JSON.stringify(winnerList) },
.......

在控制器中:

...............
def listWinnerIds= JSON.parse(params.winnerLists)
..............

这将给出像[1,2,3]

这样的列表中的值