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

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

【问题讨论】:

    标签: json grails groovy


    【解决方案1】:

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

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

    【讨论】:

    • 你能解释一下我用同样的方法缺少什么吗 (stackoverflow.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 中的原因。因此,您的解决方案效果很好。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    • 1970-01-01
    • 2020-08-04
    • 2015-04-25
    相关资源
    最近更新 更多