0
我想創建一個寧靜的服務,我試圖消費我的JSON響應並將其轉換回對象。Grails消費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:[email protected] ]] 可能的解決方案:響應(java.lang.Object),getResponse(),響應(java.lang.Object,java.util.Map),響應(java.util.Map,java.lang.Object),respondsTo (java.lang.String中),respondsTo(java.lang.String中,[Ljava.lang.Object)
在我的測試中,我需要做什麼才能將json轉換回供應商報告對象? –
'then:response.json == report' – zfChaos
then:\t def response = controller.response.json; 迴應==報告 測試合併供應商(org.VendorControllerIntegrationSpec) | org.codehaus.groovy.grails.web.converters.exceptions.ConverterException:錯誤解析JSON \t在grails.converters.JSON.parse(JSON.java:278) \t在org.VendorControllerIntegrationSpec.Test合併供應商(VendorControllerIntegrationSpec。 groovy:32) 引起人:org.codehaus.groovy.grails.web.json.JSONException:在['vendorReport'的字符16處預期爲','或']':[email protected]] \t在grails.converters.JSON.parse(JSON.java:269) \t ... 1更多 –