Converter objeto JSON
26/01/2012 13:38
0
Tenho as seguintes classes de dominio:

package mypkg
class GrupoProduto {
String descricao
boolean ativo
}


package mypkg
class SubGrupoProduto {
String descricao
boolean ativo
GrupoProduto grupo
}

Quando executo:

import grails.converters.JSON
import mypkg.SubGrupoProduto

def subGrupo = SubGrupoProduto.get(1)
println(subGrupo)
println(subGrupo as JSON)

Retorno:

1 - KARATE
{"class":"mypkg.SubGrupoProduto","id":1,"ativo":true,"descricao":"KARATE","grupo":{"class":"GrupoProduto","id":1}}

Gostaria de saber como consigo trazer as outras propriedades de 'grupo', porque apenas o 'id' e 'class' tenho que fazer outras requisições ao servidor para conseguir as outras propriedades.
Tags: json properties


0
Hummm... Será que isso tem a ver com o tipo de mapeamento que você escolheu?

Já tentou trocar isto:

class SubGrupoProduto {
String descricao
boolean ativo
GrupoProduto grupo
}

Por isto?

class SubGrupoProduto {
String descricao
boolean ativo

static belongsTo = [grupoProduto: GrupoProduto]
}


Como, por default, nesse tipo de associação o Grails não carrega toda a classe relacionada na hora da consulta, talvez você consiga alterando a estratégia para earger fetching, evitando a criação do proxy dinâmico e carregando a classe por completo:

static mapping = {
grupoProduto lazy: false
}


Abraços.
26/01/2012 21:20


0
O 'lazy: false' eu já fiz antes não deu certo. Vou tentar alterar para belongsTo.
27/01/2012 16:38


0
Coloquei o 'belongsTo' porém o resultado é o mesmo.
27/01/2012 17:38


0
Usei o JsonSlurper:
http://groovy.codehaus.org/api/groovy/json/JsonSlurper.html
Não foi a solução mais elegante porém está funcionando.
31/01/2012 12:15



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