У меня есть веб-сайт Groovy / Grails, который используется для отправки данных клиентам Android через JSON.Я создал как клиент Android, так и веб-сайт Groovy / Grails;и они могут выводить одни и те же объекты в формате JSON.
Я могу успешно создать соответствующие объекты в Android, сопоставив вывод JSON с объектами Java, однако мне было интересно, возможно ли использовать вывод JSON для создания нового объекта домена в Groovy / Grails?Есть ли способ передачи вывода JSON в действие контроллера, чтобы этот объект был создан?
Вот пример JSON, который я хотел бы отправить;
{
"class":"org.icc.callrz.BusinessCard.BusinessCard",
"id":1,
"businessCardDesigns":[],
"emailAddrs":[
{
"class":"org.icc.callrz.BusinessCard.EmailAddress",
"id":1,
"address":"chris@krslynx.com",
"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":"cb@i-cc.cc",
"businessCard":{
"_ref":"../..",
"class":"org.icc.callrz.BusinessCard.BusinessCard"
},
"index":1,
"type":{
"enumType":"org.icc.callrz.BusinessCard.EmailAddress$EmailAddressType",
"name":"W"
}
}
]
}
«Класс» соответствует домену, в который я хочу сохранить, идентификатор - этоИдентификатор домена, затем каждый элемент в рамках businessCardDesigns и emailAddrs необходимо сохранить с использованием аналогичных методов (в домене businessCardDesigns и emailAddrs являются ArrayLists).Большое спасибо заранее!
РЕШЕНИЕ:
@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);
}