JSON経由でAndroidクライアントにデータを送信するために使用されているGroovy/Grails Webサイトがあります。 AndroidクライアントとGroovy/Grailsの両方のWebサイトを作成しました。 JSONで同じオブジェクトを出力することができます。JSONを使用してGroovy/Grailsでオブジェクトを作成する
JSON出力をJavaオブジェクトにマッピングすることで、Androidでそれぞれのオブジェクトを正常に作成できますが、JSON出力を使用してGroovy/Grailsで新しいドメインオブジェクトを作成することは可能でしょうか?オブジェクトが作成されるようにJSON出力をコントローラアクションに渡す方法はありますか?
ここでは、送信したいJSONの例を示します。
{
"class":"org.icc.callrz.BusinessCard.BusinessCard",
"id":1,
"businessCardDesigns":[],
"emailAddrs":[
{
"class":"org.icc.callrz.BusinessCard.EmailAddress",
"id":1,
"address":"[email protected]",
"businessCard":{
"_ref":"../..",
"class":"org.icc.callrz.BusinessCard.BusinessCard"
},
"index":0,
"type":{
"enumType":"org.icc.callrz.BusinessCard.EmailAddress$EmailAddressType",
"name":"H"
}
},
{
"class":"org.icc.callrz.BusinessCard.EmailAddress",
"id":2,
"address":"[email protected]",
"businessCard":{
"_ref":"../..",
"class":"org.icc.callrz.BusinessCard.BusinessCard"
},
"index":1,
"type":{
"enumType":"org.icc.callrz.BusinessCard.EmailAddress$EmailAddressType",
"name":"W"
}
}
]
}
「クラス」は私が保存したいドメインにマッチし、IDは、ドメインのIDで、その後、businessCardDesignsとemailAddrs内の各項目は、同様の方法を用いて保存する必要がある(中ドメインbusinessCardDesignsとemailAddrsはArrayListです)。事前に多くの感謝!
SOLUTION:
@RequestMapping(method = RequestMethod.POST, headers = "Accept=application/json")
public ResponseEntity<String> createFromJson(@RequestBody String json) {
Owner.fromJsonToOwner(json).persist();
return new ResponseEntity<String>(HttpStatus.CREATED);
}
これは非常に便利であると思われるようです。貢献してくれてありがとう。私は月曜日にそれを試してみる。 :) – krslynx