Foros del Web » Programación para mayores de 30 ;) » Java »

enviar datos en json desde un serlet

Estas en el tema de enviar datos en json desde un serlet en el foro de Java en Foros del Web. Hola, estoy tratando de enviar datos desde un servlet en formato json para utilizar en una función post de jquery y refrescar un select. para ...
  #1 (permalink)  
Antiguo 13/10/2015, 08:24
 
Fecha de Ingreso: agosto-2015
Ubicación: La Habana
Mensajes: 72
Antigüedad: 8 años, 8 meses
Puntos: 4
enviar datos en json desde un serlet

Hola, estoy tratando de enviar datos desde un servlet en formato json para utilizar en una función post de jquery y refrescar un select. para eso estoy utilizando la función System.out.println(data) pero junto con los datos me envía etiquetas html. Puedieran ayudarme a que solo me envíe los datos. Gracias
  #2 (permalink)  
Antiguo 13/10/2015, 10:16
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: enviar datos en json desde un serlet

Primer resultado de Google: "servlet + json + example"

http://stackoverflow.com/questions/2...a-java-servlet

Un saludo
  #3 (permalink)  
Antiguo 14/10/2015, 12:32
 
Fecha de Ingreso: agosto-2015
Ubicación: La Habana
Mensajes: 72
Antigüedad: 8 años, 8 meses
Puntos: 4
Respuesta: enviar datos en json desde un serlet

ya el envío de los datos json ya está trabajando, ahora el problema está en que el select no se me está llenando bien. Estoy utilizando la función $.ajax y a continuación pongo el código del success
Cita:
success: function(data){
opciones = jQuery.extend(cfg , opciones_user);
src.empty();
if( opciones.emptyOp != null ) src.append('<option value="-1" selected="selected">'+opciones.emptyOp+'</option>');

if( data ) {
var _desc = '';
$.each(data, function(i, item) {
if( typeof cfg.campo_desc == 'object' )
{
if (!cfg.campo_desc.length) return;
else { for(i=0;i<cfg.campo_desc.length;i++){ _desc += item[cfg.campo_desc[i]]; if(i==0) { _desc+=' - '; } } }
}
else if ( typeof cfg.campo_desc == 'string' ){
_desc = item[cfg.campo_desc];
}


if( cfg.toEnd ) _desc+=cfg.toEnd;
var _sel = ( cfg.idSelected == item[cfg.campo_value]?'selected="selected"':'' );
src.append('<option '+_sel+' value="'+item[cfg.campo_value]+'">'+_desc+'</option>');
_desc='';
});
}
el select se llena con indefined y la cuestión es que la data la recorre como si fuera un string.
les comento que la función me trabaja perfectamente en otro sitio pero que está implementado con php
  #4 (permalink)  
Antiguo 14/10/2015, 13:00
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 9 meses
Puntos: 182
Respuesta: enviar datos en json desde un serlet

Buenas,

Es este subforo podemos ayudarte con Java, no con Javascript.

Si, como comentas al final, crees que el problema esta en el servlet del servidor... por que no pones ese codigo en lugar del Javascript que dices que funciona?

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #5 (permalink)  
Antiguo 15/10/2015, 07:55
 
Fecha de Ingreso: agosto-2015
Ubicación: La Habana
Mensajes: 72
Antigüedad: 8 años, 8 meses
Puntos: 4
Respuesta: enviar datos en json desde un serlet

aqui les va el código
Cita:
PosDeviceManager posdeviceManager = (PosDeviceManager)entityManager;

Gson gson= new Gson();
PrintWriter out = response.getWriter();
List<PosSale> data = posdeviceManager.getPosSaleManager().getEntities() ;
out.print(gson.toJson(data);
out.close();
  #6 (permalink)  
Antiguo 15/10/2015, 09:20
 
Fecha de Ingreso: agosto-2015
Ubicación: La Habana
Mensajes: 72
Antigüedad: 8 años, 8 meses
Puntos: 4
Respuesta: enviar datos en json desde un serlet

más información ahora me reporta error, en los datos de la petición en Response Headers me informa que Transfer-Encoding está chunked.
  #7 (permalink)  
Antiguo 15/10/2015, 09:32
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 9 meses
Puntos: 182
Respuesta: enviar datos en json desde un serlet

Aparentemente posdeviceManager.getPosSaleManager().getEntities() te esta devolviendo nulo.

Lo has verificado? Has depurado el codigo Java?

Tambien es importante que antes de recuperar el printwriter hagas un:
response.setContentType("application/json");

Un saludo
__________________
If to err is human, then programmers are the most human of us

Etiquetas: json
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:07.