【问题标题】:Grails Consuming JSON response.Grails 使用 JSON 响应。
【发布时间】:2017-04-25 09:58:34
【问题描述】:

我正在尝试创建一个安静的服务,并且我正在尝试使用我的 JSON 响应并将其转换回一个对象。

控制器方法

def mergeVendors(String region) {

    def report = new VendorReport();
    //do something with  report

    response.status = 201
    response ([vendorReport: report]) as JSON
}

测试方法

void "Test Merge Vendors"() {
    when:       
    controller.request.method = 'POST'
    controller.request.json = '[{id:1, zip:"14224"}]'

    controller.mergeVendors("Florida")

    def response =  controller.response


    then:
    response.zip == "14224"
}

上面的代码是我正在尝试使用的,我得到了以下异常。如何将响应转换回 VendorReport obj?

groovy.lang.MissingMethodException:没有方法签名:org.healthresearch.VendorController.response() 适用于参数类型:(java.util.LinkedHashMap) 值:[[vendorReport:org.vendor.VendorReport@1b0dbdf1] ] 可能的解决方案:respond(java.lang.Object), getResponse(), respond(java.lang.Object, java.util.Map), respond(java.util.Map, java.lang.Object), respondsTo(java. lang.String), respondsTo(java.lang.String, [Ljava.lang.Object;)

【问题讨论】:

    标签: ajax grails


    【解决方案1】:
    response ([vendorReport: report]) as JSON
    

    改成

    render ([vendorReport: report]) as JSON
    

    【讨论】:

    • 在我的测试中将 json 转换回 VendorReport 对象需要做什么?
    • then: response.json == report
    • 然后:def response = controller.response.json;响应 == 报告测试合并供应商(org.VendorControllerIntegrationSpec)| org.codehaus.groovy.grails.web.converters.exceptions.ConverterException:在 org.VendorControllerIntegrationSpec.Test Merge Vendors(VendorControllerIntegrationSpec.groovy:32) 的 grails.converters.JSON.parse(JSON.java:278) 处解析 JSON 时出错作者:org.codehaus.groovy.grails.web.json.JSONException:在 grails.converters.JSON.parse 的 ['vendorReport':org.vendor.VendorReport@1e5c61e6] 的字符 16 处应为“,”或“]” (JSON.java:269) ... 1 更多
    • 我不知道你的 VendorReport 类的结构。您可能需要一个 GSP 模板来生成正确的 JSON。调试您的应用,检查您的 JSON 是否有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多