Mam witrynę Groovy/Grails, która jest używana do wysyłania danych do klientów Androida za pośrednictwem JSON. Stworzyłem zarówno klienta Android, jak i stronę Groovy/Grails; i mogą wyprowadzać te same obiekty w JSON.Używanie JSON do tworzenia obiektu w Groovy/Grails
Mogę pomyślnie tworzyć odpowiednie obiekty w systemie Android, mapując wyjście JSON na obiekty Java, ale zastanawiałem się, czy możliwe jest użycie wyjścia JSON do utworzenia nowego obiektu domeny w Groovy/Grails? Czy istnieje sposób przekazywania wyniku JSON do akcji kontrolera, aby obiekt został utworzony?
Oto przykład JSON, który chciałbym wysłać;
{
"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"
}
}
]
}
„klasy” pasuje do domeny Chciałbym zapisać identyfikator jest identyfikatorem domeny, a następnie każdy element ciągu businessCardDesigns i emailAddrs musi być zapisany przy użyciu podobnych metod (w Domena businessCardDesigns i emailAddrs to ArrayLists). Z góry bardzo dziękuję!
ROZWIĄZANIE:
@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);
}
Wygląda na to, że może się okazać bardzo przydatny; dziękuję za wkład. Wypróbuję to w poniedziałek. :) – krslynx