JSONデータをGrailsのURLに投稿したら、コントローラー内でそのデータにアクセスするにはどうすればよいですか?
GrailsはJSONを自動的に解析/アンマーシャリングし、コントローラーのrequest.JSON
からアクセスできます。返されるオブジェクトのタイプは JSONObject
であるため、マップスタイルでプロパティにアクセスできます。このJSONObjectをデータバインディングに直接使用することもできます。
def jsonObject = request.JSON
def instance = new YourDomainClass(jsonObject)
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)
}