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

Posted

技术标签:

【中文标题】如何从 jQuery 发送数组并将其显示在 grails 控制器中?【英文标题】:How to send array from jQuery and display it in grails controller? 【发布时间】:2015-04-04 00:37:07 【问题描述】:

我在 jquery 中有一个包含 10 个数字的数组,名为“winnerList”,我使用 ajax 将它从 jquery 发送到 WinnerController:

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

现在我使用“winners”函数在控制器内部接收它:

def winners()
    print params

我得到的结果是:

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

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

【问题讨论】:

你的JS代码中winnerList的值是多少? 我已经定义为winnerList=[];后来10个数字存储在里面 【参考方案1】:

发送时先将数组转成json:

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

然后在action中解析这个json:

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

【讨论】:

在这样做时,我得到了这样的价值 [[112],[12],[114]] 它类似于列表中的列表,所以如何只获取整数而不将其从括号中拆分出来?? 【参考方案2】:

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

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

在控制器中:

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

这将给出列表中的值,如 [1,2,3]

【讨论】:

以上是关于如何从 jQuery 发送数组并将其显示在 grails 控制器中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在异步调用期间填充数组并将其发送到响应对象中

如何从数组列表中分离数据并将其显示到列表视图中?

如何在 Windows Phone 8.1 上从数据库中获取图像并将其显示为字节数组

循环数组并将结果发送到查看 ASP.NET

如何从数据库中获取最后插入的 id 并将其发送到组件?

从数组中获取项目并将其删除,直到 Discord JS bot 的数组为空