Buenas tardes estimados.
He creado un servidor datasnap en el cual he creado una funcion que recibe como parametro un string en formato json para luego parsearlo e insertar datos en una bd.
Parte de su codigo es el siguiente:
Código Delphi
[-]
function TServerMethods.Insertar_Usuario( data: string ): Integer;
var
cNombres, cApellidos, cDireccion, cCedula, cSexo, cTelefono, cEmail : string;
dFecha : TDate;
nFicha : Double;
jSon : TJSONObject;
begin
json := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(data),0) as TJSONObject;
try
cNombres := jSon.Get('nombres').JsonValue.Value;
cApellidos := jSon.Get('apellidos').JsonValue.Value;
cDireccion := jSon.Get('direccion').JsonValue.Value;
dFecha := StrToDate(jSon.Get('fecha_nacimiento').JsonValue.Value);
cCedula := jSon.Get('cedula').JsonValue.Value;
cSexo := jSon.Get('sexo').JsonValue.Value;
cEmail := jSon.Get('email').JsonValue.Value;
cTelefono := jSon.Get('telefono').JsonValue.Value;
finally
json.Free;
end;
el parametro data tiene el siguiente formato
{"nombres":"aa","apellidos":"bb","direccion":"ccc","fecha_nacimiento":"01/01/2015","email":"hola", "telefono":"12222","cedula":"122211122","sexo":"M"}';
Al llamar al procedimiento desde mi navegador invocando dicha funcion con los mismos datos como parametro, el objeto "json" que obtengo siempre es nil.
He probado a definir el parametro con comillas simples y dobles en el cual el proceso no se efectua.
Si asigno dichos valores a una variable y ejecuto la funcion internamente fuera del navegador, funciona perfectamente, asi que algo debe pasar en la manera que la invoco desde el mismo.
Me resulta extraño que ademas tengo otras funciones a las cuales llamo tambien desde el navegador y funciona barbaro, solo que le paso numeros como parametros.
Alguna idea ??
Muchas gracias.