Receber dados JSON separadamente
04/01/2013 06:28
0
Possuo a seguinte classe
class Pessoa{
int matricula
Endereco endereco
}


como fazer para passar os dados do JSON para os campos do construtor de Pessoa? Se eu passar apenas os dados do endereço e setar a matricula funciona tranquilo:

{{"numero":356,"rua":"Rua"}}

def dados = request.JSON
def endereco = new Endereco(dados)
def pessoa = new Pessoa(matricula:001,endereco:endereco)
pessoa.save()


Mas se eu quiser passar a matricula e o objeto endereco pelo JSON?:
{"endereco":{"numero":356,"rua":"Rua"},"matricula":001}

Como posso fazer para meu construtor receber cada um?
def dados = request.JSON
*******
def pessoa = new Pessoa(matricula:matricula,endereco:endereco)
pessoa.save()



Valeu
Tags: Json,Rest,Web Service


1
tenta fazer :
def params = grails.converters.JSON.parse(dados)
def pessoa = new Pessoa(params)


ou com o JsonSlurper:
def params = new JsonSlurper().parseText(dados)
def pessoa = new Pessoa(params)
04/01/2013 13:18


1
Se não der tenta:

def params = new JsonSlurper().parseText(dados)
def pessoa = new Pessoa(matricula:params.matricula, endereco:params.endereco)


Já fiz algo parecido e tinha uma magia, mas não lembro exatamente hehehe
04/01/2013 13:26


1
Muito bom, era isso mesmo :)

Apenas tive que passar os dados para string e converter a matricula para um Int e os campos de endereço que são Double Ex:

def sluper = new JsonSlurper().parseText(dados.ToString())


Double numRua = sluper.endereco.numero as Double


depois criei o objeto endereco e passei normalmente para o construtor de Pessoa.

def pessoa = new Pessoa(matricula:matricula, endereco:endereco)


Valeu mesmo cara.

Abração!
04/01/2013 14:51


0
Boa

qualquer coisa estamos ae =)
04/01/2013 20:11



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto