Problemas na Serialização XStream

3 respostas
fredericoengels

Galera, to querendo serializar uma lista e criei o converter

@SuppressWarnings("rawtypes")
public class ListaParametrosConverter implements Converter {

	@Override
	public boolean canConvert(Class classe) {
		return classe.equals(ListaParametros.class);
	}

	@Override
	public void marshal(Object value, HierarchicalStreamWriter writer, MarshallingContext context) {
		ExtendedHierarchicalStreamWriter writer2 = (ExtendedHierarchicalStreamWriter) writer;
		ListaParametros parametros = (ListaParametros) value;
		
		for (int i = 0; i < parametros.size(); i++) {
			Parametro param = parametros.get(i);
			writer2.addAttribute(param.getChave(), param.getValor().toString());
		}
	}

	@Override
	public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
		return null;
	}

}

no entanto os nomes dos atributos estão iniciando com um @ e gostaria de saber como faço para inserir um atributo int ou float, pois o método addAttribute só aceita string
segue abaixo a resposta json

{"resposta": [{"@codigo_chamada": "2","@titulo_relatorio": "Relatório","@titulo_ficha": "Ficha","@query_insert": "TESTE","@query_update": "","@query_delete": "","@codigo_consulta": "1"},{"@codigo_chamada": "3","@titulo_relatorio": "Teste","@titulo_ficha": "teste","@query_insert": "teygare","@query_update": "rgaeyg","@query_delete": "rgaeyu","@codigo_consulta": "2"}]}
no caso o "@codigo_chamada" deveria ser assim
{"codigo_chamada": 2}

3 Respostas

mauricioadl

use xstream.setMode(XStream.NO_REFERENCES); assim ele para de colocar o @

Lucas_Cavalcanti

duplicado:
http://groups.google.com/group/caelum-vraptor/browse_thread/thread/8293ae29a97872e2

fredericoengels

Pois é Lucas, o Sérgio postou lá no fórum do VRaptor e eu resolvi postar aqui no GUJ… Estavamos meio que desesperados na tentativa de solucionar esse problema…

Vou utilizar o fórum do VRaptor mesmo…

Criado 5 de junho de 2012
Ultima resposta 5 de jun. de 2012
Respostas 3
Participantes 3