Problemas con json
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.-
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); }
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
¿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.