Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rdpacato

Passar lista para JSON

Recommended Posts

Pessoalm

 

Tenho essa lista no servlet, e queria enviar por JSON, só que não faço ideia como:

for (int i = 0; i < dadosVeiculo.size(); i++) {
					request.setAttribute("placa", dadosVeiculo.get(i).getPlaca());
					/*dadosVeiculo.get(i).getMarca();
					dadosVeiculo.get(i).getModelo();
					dadosVeiculo.get(i).getAnoFabricacao();
					dadosVeiculo.get(i).getAnoModelo();
					dadosVeiculo.get(i).getRenavam();
					dadosVeiculo.get(i).getCor();*/
				}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O mais comum é você fazer uma chamada ajax e devolver um json.

 

Para devolver o json você pode usar a biblioteca da google Gson.

 

 

String json = (new Gson).toJson(dadosVeiculo);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em Java você teria que fazer o contrário do que fez no controller.

 

Veja o método fromJson

 

Porém o mais adequado seria tratar o json com jquery numa chamada ajax.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não ntendi...

 

eu pensei em algo como:

var obj = jQuery.parseJSON( '{ "placa":dadosVeiculo.placa}');
alert(obj.placa)

Não faço ideia de como tratar isso.. é a primeira vez que trabalho com Json.. estou lendo alguns documentos ainda, mas tem muito material que não tem muito a ver com o que estou fazendo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma maneira é fazer uma chamada ajax como falei e tratar o retorno com jquery.

 

Mais ou menos assim:

 

 

$('#botaoAjax').on('click',function(){
   $.ajax({
      type:"post",
      url:"sua_url",
      data:{"idVeiculo",1},
      success: function(data, textStatus, jqXHR){
         alert(data);
      }

   });
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara...

 

 

Tentei setar assim:

 

httpServletResponse.getWriter().write(dadosVeiculo);

Mas pede para ser INT... tentei json:

 

String json = gson.toJson(dadosVeiculo);

e assim:

 

String json = gson.toJson(dadosVeiculo.get(0).getPlaca());
ServletResponse httpServletResponse = null;
httpServletResponse.getWriter().write(json);

Realmente não estou entendendo a alma do negócio.. me desculpe a amolação Kandrade... mas ta difícil de entrar na cabeça

Ambos os casos da nullponiter em

httpServletResponse.getWriter().write(json)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui Assim:

 

No Servlet passo a lista:

 
response.getWriter().write(json); 
request.setAttribute("dadosVeiculo", 
dadosVeiculo);
		$(document).ready(function(){
	
			$("select[name='veiculo']").change(function(){
				var dataVeiculo = {"veiculo": $(this).val(),"loginUsuario":'${loginUsuario}'};	
				var placas = $("input[name='placas']");

				if($(this).val()=="0"){
					$( placa ).val("");
					$( marca ).val("");			
					$( modelo ).val("");
					$( anoFabricacao ).val("");
					$( anoModelo ).val("");
					$( renavam ).val("");
					$( cor ).val("");
				} else {
					
					$.ajax({
					
						type : "POST",
						url: "ServletEditarDados",
						data: dataVeiculo,
							success: function(response)
							{
								$( placa ).val('Carregando...');
								
								$.each(JSON.parse(response), function(idx, obj) {
									$( placa ).val(obj.placa),
									$( marca ).val(obj.placa),			
									$( modelo ).val(obj.placa),
									$( anoFabricacao ).val(obj.placa),
									$( anoModelo ).val(obj.placa),
									$( renavam ).val(obj.placa),
									$( cor ).val(obj.placa)
								});
							}
						
						});
					}
				
			});
		});

No inspecionar elemento tem esse erro:

 

Uncaught TypeError: Cannot use 'in' operator to search for '50' in

 

 

Mas não sei se isso prejudicará no futuro, pois no momento está funcionando...

 

 

 

Valeu pela força Kandrade... abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.