Ho un sito Web Groovy/Grails che viene utilizzato per inviare dati ai client Android tramite JSON. Ho creato sia il client Android che il sito Web Groovy/Grails; e possono produrre gli stessi oggetti in JSON.Utilizzo di JSON per creare un oggetto in Groovy/Grails
Posso creare correttamente i rispettivi oggetti in Android associando l'output JSON agli oggetti Java, tuttavia mi chiedevo se è possibile utilizzare l'output JSON per creare un nuovo oggetto dominio in Groovy/Grails? Esiste un modo per trasmettere l'output JSON a un'azione del controller in modo che l'oggetto venga creato?
Ecco un esempio del JSON che vorrei inviare;
{
"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"
}
}
]
}
La "classe" corrisponde al dominio che vorrei salvare, l'ID è l'ID del dominio, quindi ogni elemento all'interno dei businessCardDesigns e emailAddrs ha bisogno di essere salvato utilizzando metodi simili (in Dominio il businessCardDesigns e emailAddrs sono ArrayLists). Molte grazie in anticipo!
SOLUZIONE:
@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);
}
Questo sembra che potrebbe rivelarsi molto utile; grazie per il contributo Ci proverò lunedì. :) – krslynx