Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-12-2019
Avatar de Kiranov
Kiranov Kiranov is offline
Miembro
 
Registrado: ago 2012
Ubicación: Chihuahua, Mexico.
Posts: 47
Poder: 0
Kiranov Va por buen camino
Mensaje de JSON no valido

Buenas tardes,

Estoy trabajando con las librerias REST de delphi 10.3.2. Ya tengo hecho un servidor que me regresa un resultado de JSON y desde el REST Debuguer me dice que esta correcto. De ahi copie los componentes y lo pegue en una form, para probar y todo bien. El problema viene a la hora de usar esos mismo componentes que me dio el debugger y usarlos desde un TDataModule que esta dentro de una BPL. A la hora de usar la BPL carga la clase correctamente y carga los componentes pero al correr el comando Execute del RESTResponse me arroja el mensaje "Response content is not valid JSON.". A alguien le ha pasado algo así?

Saludos!
__________________
Kiranov (Alberto Vega)
Chihuahua, Mexico.
---------------------------------------------------------------------------------
"El hardware es lo que hace a una máquina rápida;
el software es lo que hace que una máquina rápida se vuelva lenta."

Craig Bruce en 1990
---------------------------------------------------------------------------------
Responder Con Cita
  #2  
Antiguo 24-12-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Sí, claro, que el servidor no ha creado un json correcto de respuesta.
Si lo pones por aquí podemos echarle un vistazo.
Responder Con Cita
  #3  
Antiguo 24-12-2019
Avatar de Kiranov
Kiranov Kiranov is offline
Miembro
 
Registrado: ago 2012
Ubicación: Chihuahua, Mexico.
Posts: 47
Poder: 0
Kiranov Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Sí, claro, que el servidor no ha creado un json correcto de respuesta.
Si lo pones por aquí podemos echarle un vistazo.
Buenos dias o tardes, depende se emcuentren

El JSON que me retorna es el siguiente:
Código:
{
    "result": [
        {
            "id": "1",
            "passwd": "*******",
            "username": "prueba1",
            "useractive": true,
            "lastpwdchange": "",
            "usedates": true,
            "validfrom": "01/01/2019",
            "validto": "31/12/2019",
            "usrcanchngpwd": true,
            "usrgroups": "",
            "fechaalta": "13/01/2019"
        }
    ]
}
Gracias por la ayuda,
__________________
Kiranov (Alberto Vega)
Chihuahua, Mexico.
---------------------------------------------------------------------------------
"El hardware es lo que hace a una máquina rápida;
el software es lo que hace que una máquina rápida se vuelva lenta."

Craig Bruce en 1990
---------------------------------------------------------------------------------
Responder Con Cita
  #4  
Antiguo 30-12-2019
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.276
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Qué tipo de Servidor te está generando el JSON?
Hay que distinguir entre que un JSON sea correcto sintacticamente y que los componentes de Delphi sepan trasladarlo/convertirlo a un TDataset.
A veces el JSON trae algún nivel de más o de menos...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 30-12-2019
Avatar de Kiranov
Kiranov Kiranov is offline
Miembro
 
Registrado: ago 2012
Ubicación: Chihuahua, Mexico.
Posts: 47
Poder: 0
Kiranov Va por buen camino
Gracias por tu respuesta,

El servidor esta hecho en Delphi, es un servidor DataSnap el cual tiene la funcion que crea el resultado json de la siguiente manera:

Código Delphi [-]
function TServerMethods1.userinfo(const usuario,contrasena:string): TjsonObject;
var
  userinfo:tjsonobject;
begin
  try
    userinfo:=tjsonobject.Create;
    fdconnection1.Connected:=true;
    fdconnection1.Params.Database:='mibasededatos';
    fdquery1.SQL.Text:='SELECT * from sys_usercontrol WHERE userid=:userid AND passwd=PASSWORD(:userpasswd)';
    fdquery1.ParamByName('userid').AsString:=usuario;
    fdquery1.ParamByName('userpasswd').AsString:=contrasena;
    fdquery1.Open();
    if fdquery1.RecordCount>0 then
    begin
      userinfo.AddPair(TJSONPair.Create('id',fdquery1.FieldByName('id').AsString));
      userinfo.AddPair(TJSONPair.Create('passwd',fdquery1.FieldByName('passwd').AsString));
      userinfo.AddPair(TJSONPair.Create('username',fdquery1.FieldByName('username').AsString));
      userinfo.AddPair(TJSONPair.Create('useractive',TJSONBool.Create(fdquery1.FieldByName('useractive').A  sBoolean)));
      userinfo.AddPair(TJSONPair.Create('lastpwdchange',fdquery1.FieldByName('lastpwdchange').AsString));
      userinfo.AddPair(TJSONPair.Create('usedates',TJSONBool.Create(fdquery1.FieldByName('usedates').AsBoo  lean)));
      userinfo.AddPair(TJSONPair.Create('validfrom',fdquery1.FieldByName('validfrom').AsString));
      userinfo.AddPair(TJSONPair.Create('validto',fdquery1.FieldByName('validto').AsString));
      userinfo.AddPair(TJSONPair.Create('usrcanchngpwd',TJSONBool.Create(fdquery1.FieldByName('usrcanchngp  wd').AsBoolean)));
      userinfo.AddPair(TJSONPair.Create('usrgroups',fdquery1.FieldByName('usrgroups').AsString));
      userinfo.AddPair(TJSONPair.Create('fechaalta',fdquery1.FieldByName('fechaalta').AsString));
    end
    else
    begin
      userinfo.AddPair(tjsonpair.Create('ERROR','NO SE ENCONTRO EL USUARIO '+usuario))
    end;
  finally
    result:=userinfo;
  end;
end;

Sucede algo: Cuando tengo una form y le coloco los componentes que copio del REST Debugger, funciona de maravilla. Si invoco el recurdo REST desde el REST debugger o desde Postman, tambien el resultado me lo dan correcto ambas herramientas. Lo extraño es que al usar los mismos componentes pero dentro de un DataModule que se encuentra en una BPL es cuando me arroja el mensaje de "Response content is not a valid JSON". Solo cuando lo invoco desde los componentes del DataModule...

Saludos y gracias por la ayuda, esto me va volviendo cada vez mas loco jejeje...
__________________
Kiranov (Alberto Vega)
Chihuahua, Mexico.
---------------------------------------------------------------------------------
"El hardware es lo que hace a una máquina rápida;
el software es lo que hace que una máquina rápida se vuelva lenta."

Craig Bruce en 1990
---------------------------------------------------------------------------------
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Indice de descriptor no válido Alexander Conexión con bases de datos 2 07-11-2007 00:55:49
como valido fechas JULIOCTORRESG Varios 8 24-11-2006 13:39:27
el objeto 'sysmergearticles' no es válido.... Cabanyaler MS SQL Server 1 03-08-2006 09:52:47
rango valido FGarcia Varios 2 28-04-2006 01:51:01
basededatos.fdb no es un archivo valido RONPABLO Firebird e Interbase 4 23-08-2005 19:37:13


La franja horaria es GMT +2. Ahora son las 18:51:12.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi