Foro

Problemas con json

0
Estimados una vea mas estoy complicado, esta vez lo que quiero es consultar un registro desde una base de datos mi problema pasa porque no he podido leerlo con extjs, el codigo es el sgte.
JSONObject objectJSON = new JSONObject();
            objectJSON.put("idusuario", 0);
            objectJSON.put("rut", "1");
            objectJSON.put("digito", "9");
            objectJSON.put("nombre", "MARCELO");
            objectJSON.put("apellidos", "UGALDE");
            objectJSON.put("email", "");
            objectJSON.put("clave", "");
            objectJSON.put("perfil", "");
            objectJSON.put("idperfil", "");
            JSONObject jsonData = new JSONObject();
            jsonData.put("data", objectJSON);
            devuelve = objectJSON.toString();
el codigo anterior es el generado en la clase, en el servlet hago esto :
 
JSONObject msg = new JSONObject();
msg.put("success", true);
msg.put("msg", UsuarioServices.recuperaUsuario());
out.print(msg);
out.flush();
out.close();
donde msg lleva el contenido, claro que si en vez de llevar un objeto JSON, lleva un String, esto funciona, pero el success o el failure no funcionan y la llamada la hago de esta forma
 Ext.Ajax.request({
                                    url: '../UsuarioProcesaServlet.do',
                                    params : {
                                        parametro  : 'B',
                                        rutusuario : Ext.getCmp('rutusuario').getValue()
                                    },
                                    success: function(o){
                                        this.registro = Ext.util.JSON.decode(o.responseText);
                                        xx=o.responseText;
                                        alert(xx.nombre)
                                        alert(this.registro.nombre);
                                    },
                                    failure: function(){
                                    }
                                }
                                );
como les decia en js, solo me funciona si lo que viene es un String y no un objeto, si me pudieran ayudar desde ya gracias... Marcelo.-
0
intenta hacer un "msg.toString()" cuando lo imprimes Saludos
0
Agradecido me funciono de la sgte. manera, lo que hago es devolver un JsonObject, y no un String, y en el js le hago un toString y funciona, ahora mi problema que siempre realiza el success, venga o no true, es mas firebug lo muestra que viene con valor success false pero hace lo contrario, es decir, entra al success y no al failure, el codigo lo tengo de esta forma
success : function(result, request){
                                        alert("Funciono");
                                        this.registro = Ext.util.JSON.decode(result.responseText);
                                        alert(registro.msg);
                                        alert(this.registro.msg.nombre);
                                        alert(this.registro.msg.apellidos);
                                    },
                                    failure : function(result, request){
                                        alert(result);
                                        alert(result.toString());
                                        alert("Fallo");
                                        this.registro = Ext.util.JSON.decode(result.responseText);
                                        alert(this.registro.msg);
                                    }
0
por que success significa que la solicitud se realizo correctamente no importa el resultado, en la funcion succes debes colocar la logica para evaluar y ejecutar lo que requieras segun el valor de tu variable succes la fuccion failure se ejecuta si ocurre algun error al realizar la solicitud
0
Agradecido por tu respuesta, esto me aclara las cosas, es mas pensaba que si la consulta venia con 0 registro eso ocasionaba un failure, pero con lo que me has dicho me queda claro....

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.