Vraptor JSON - Problema qdo campo na table está null

9 respostas
marcelomello

Bom dia pessoal,

Estamos encontrando o seguinte problema, estamos realizando uma busca no Banco (oracle)
em uma determinada tabela, muitas vezes os campos desta tabela estão com valores nulos,
os mesmos são retornados para um list. Aí qdo colocamos a linha para serialização para json
os campos nulos não são retornados. Por acaso, teria alguma configuração para trazer campos
com valores nulos???

public void loadJson(Integer cdEstacAgromet) {
   List<DadoEstacAgromet> dadoList = dao.lista(cdEstacAgromet);
   result.use(json()).from(dadoList).include("dadoEstacAgrometPK").serialize();
}

Um abraço,

Marcelo

9 Respostas

G

Eu não sei muito bem como funciona a implementação de json/xml do vraptor, mas quando você tem um objeto que é nulo ele não precisa estar no XML, consecutivamente quando você for fazer a leitura desse json/xml o marshaller entenderá que ele é nulo.

A menos que você queira muito que apareça os nulls aí você pode sobrescrever alguma convenção do vraptor para isso. Porém não me parece necessário.

Abraços

Lucas_Cavalcanti

como você está lendo o json gerado?

marcelomello

Lucas,

O problema está no gerar o json e não em ler.
Att,

Mello

Lucas_Cavalcanti

e qual é o problema dele não serializar os campos nulos?

G

Essa foi minha questão no início de tudo. Quando você fazer o marshal do objeto os valores que não estão no envelope são deixados como nulos, ou seja, não há problema algum os nulos não serem exibidos. Penso que a vontade de aparecer os nulos seja apenas visual.

Lucas, você conhece melhor o backend usado pelo vraptor, que é o XStream, mas pelo que conheço de outros serializers os nulos são tratados da mesma forma, ou seja, não são exibidos. Se é um padrão exibir ou não eu não sei.

Lucas_Cavalcanti

no XStream, e em todos os outros serializers, o padrão é ignorar os nulos…

se o atributo vai aparecer no xml/json ele tem que ser no mínimo vazio ("")

marcelomello

garcia-jj wrote:
Penso que a vontade de aparecer os nulos seja apenas visual.

A necessidade tbém é esta.

Lucas Cavalcanti wrote:
no XStream, e em todos os outros serializers, o padrão é ignorar os nulos…

Como faço para que ele (XStream) não ignore os nulos? Talvez esteja precisando de óculos,
mas não encontrei nada na doc do XStream :slight_smile:

Att,

Mello

Lucas_Cavalcanti

talvez vc consiga fazer isso com algum converter http://xstream.codehaus.org/converter-tutorial.html

http://xstream.codehaus.org/converters.html

marcelomello

Bom dia a todos,

Obrigado Lucas e Garcia, pelas respostas.
Este post na verdade foi para uma colega aqui do trabalho que tbém está se aventurando com o VRaptor.

Qto ao converter eu já havia encontrado mas estava esperando algum arquivos de properties para que
o XStream se virasse em trazer tbém os nulos.

No momento a maneira mais “conveniente” de que ao receber a lista populada do DAO, ela percorre
a mesma e preenche com valores os nulos.

Pode não ser a melhor, mas achamos q é a mais fácil no momento.
O Converter vai ser estudado a fundo, em um outro momento. :S :?

OBrigado pela ajuda.

Mello

Criado 18 de fevereiro de 2010
Ultima resposta 22 de fev. de 2010
Respostas 9
Participantes 3