使用 Grails 在服务器端获取 JSON 数据

Posted

技术标签:

【中文标题】使用 Grails 在服务器端获取 JSON 数据【英文标题】:Getting JSON data on server side with Grails 【发布时间】:2011-03-02 11:33:02 【问题描述】:

一旦我将 JSON 数据发布到 Grails 中的 url,我如何才能在控制器内部访问该数据?

【问题讨论】:

【参考方案1】:

Grails 自动解析/解组 JSON,您可以通过控制器中的 request.JSON 访问它。返回的对象是JSONObject 类型,因此允许以地图样式访问属性。也可以直接使用这个 JSONObject 进行数据绑定:

def jsonObject = request.JSON
def instance = new YourDomainClass(jsonObject)

【讨论】:

你能解释一下我用同样的方法缺少什么吗 (***.com/questions/15067379/…) 如果你没有域类(即json只有它的输入数据),有没有办法解析jsonObject?显然可以执行 def x = jsonOblect.xxx,但是如何遍历 json 内部的集合?【参考方案2】:

查看 Grails 中的 JSON 类:

http://grails.org/doc/latest/api/org/codehaus/groovy/grails/web/json/package-frame.html

例如,下面是我在名为“update”的参数中迭代 JSON 记录列表的方法:

    def updates = new org.codehaus.groovy.grails.web.json.JSONArray(params.updates)
    for (item in updates) 
                    def p = new Product()
        p.quantity = item.quantity
        p.amount = item.amount
        p = salesService.saveProductSales(p)

    

【讨论】:

谢谢迈克!除了参数之外,还有其他获取发布数据的变量/方法吗?这才是真正让我最痛苦的原因。 你知道吗,我发现我没有发布 json,这就是它从未出现在 params 中的原因。因此,您的解决方案效果很好。再次感谢!

以上是关于使用 Grails 在服务器端获取 JSON 数据的主要内容,如果未能解决你的问题,请参考以下文章

ReactJS:无法在一次 POST 调用中发送 JSON 数据和 PDF 文件

热实现 grails 服务器端触发对话框,或如何在 AJAX 调用后突破更新区域

利用Jquery获取服务器端json数据

Grails 以 JSON 格式发送请求并在控制器中解析它

Json 空数据行为异常

在 Groovy/Grails 中使用 JSON 创建对象