Json para um List<Float>

3 respostas
marcelomello

Olá pessoal,

Li e reli esse tópico tentando solucionar meu problema, mas não entendi nada.
http://www.guj.com.br/java/280629-resolvido-vraptor-montando-json-com-list

Tenho o seguinte controller:

DadosXXXDTO

private List<Float> ranges;
	private Float measures;
	private Float markers;
	private String title = "bla bla bla";
	private String subtitle = "";
	private Calendar dtRegis;

Método no Controller

public void getDados(ParametroBuscaDTO params){
		
		DadosXXXDTO dto = new DadosXXXDTO();
		ArrayList<Float> ranges = new ArrayList<Float>();

		List<DadosXXX> variaveis = service.getDadosXXX(params);
		if(variaveis != null){
			ranges.add(variaveis.get(0).getMinimo());
			ranges.add(variaveis.get(0).getMedia());
			ranges.add(variaveis.get(0).getMaximo());
		}		
		dto.setRanges(ranges);
		
		List<DadoQualificado> dados = service.getDadosXXXInstantaneo(params);
		
		if(dados != null){
			dto.setMeasures(dados.get(0).getMdValor());
			dto.setMarkers(dados.get(0).getMdValor());
			dto.setDtRegis(dados.get(0).getDtRegis());
		}
		
		result.use(Results.json()).from(dto, "bullets").serialize();
	}

O JSON deveria ficar desta forma:

bullets = [

{

title: bla bla bla,

subtitle: “”,

ranges: [5.7, 9.5, 25],

measures: [14.25],

markers: [14.25]

}

];

mas recebo este:

{“bullets”: {“measures”: 1592.0,“markers”: 1592.0,“title”: “Nível de Rio”,“subtitle”: “”,“dtRegis”: {“time”: 1340643600000,“timezone”: “America/Sao_Paulo”}}}

ou seja está faltando o List

Alguém tem alguma sugestão?

Vlw

3 Respostas

E

Veja se você está realmente preenchendo corretamente o dto. Pelo que percebi, você cometeu também outros erros (veja o valor de “measures” e “markers”, que você puxou de um método esquisito) - vai que service.getDadosXXX está retornando null, por exemplo.

Rafael_Guerreiro

Faça assim:

Para que o XStream serialize todos os atributos de todas as classes presentes na sua.

Ou você pode usar o include:

Lucas_Cavalcanti

pode usar tb o withoutRoot, se não quiser o elemento de fora.

result.use(Results.json()).withoutRoot().from(....
Criado 26 de agosto de 2012
Ultima resposta 27 de ago. de 2012
Respostas 3
Participantes 4