Code Junkie
Code Junkie

Reputation: 7788

Grails Consuming JSON response.

I'm trying to create a restful service and I'm trying to consume my JSON response and convert it back to an Object.

Controller method

def mergeVendors(String region) {

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

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

Test Method

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"
}

The code above is what I'm trying to use and I get the following exception. How do I cast the response back to a VendorReport obj?

groovy.lang.MissingMethodException: No signature of method: org.healthresearch.VendorController.response() is applicable for argument types: (java.util.LinkedHashMap) values: [[vendorReport:org.vendor.VendorReport@1b0dbdf1]] Possible solutions: 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;)

Upvotes: 0

Views: 746

Answers (1)

zfChaos
zfChaos

Reputation: 415

response ([vendorReport: report]) as JSON

change to

render ([vendorReport: report]) as JSON

Upvotes: 3

Related Questions