Converter objeto JSON
26/01/2012 13:38
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
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.
O 'lazy: false' eu já fiz antes não deu certo. Vou tentar alterar para belongsTo.
Coloquei o 'belongsTo' porém o resultado é o mesmo.
Usei o JsonSlurper:
http://groovy.codehaus.org/api/groovy/json/JsonSlurper.html
Não foi a solução mais elegante porém está funcionando.
Ainda não faz parte da comunidade???
Para se registrar, clique aqui.