Page 1 of 1

leer archivo

Posted: Sun Mar 19, 2017 10:17 pm
by surGom
Hola compañeros tengo el siguiente problema. Hago una consulta a un web service desde dónde la respuesta es un archivo json, a este lo transformo en un txt (cResp.txt) y queda asi

{"success":true,"data":{"idPersona":30520528931,"tipoPersona":"JURIDICA","tipoClave":"CUIT","estadoClave":"ACTIVO","nombre":"NOSEL PODER S.A.","domicilioFiscal":{"direccion":"BELGRANO AV. 1955 Piso:28","codPostal":"1092","idProvincia":0},"idDependencia":8,"mesCierre":12,"fechaInscripcion":"1901-01-01","fechaContratoSocial":"1977-02-03","impuestos":[10,25,30,103,211,217,218,301,353,767],"actividades":[469090,201180,466932,649999,681098,463111],"caracterizaciones":[68,71,72,255,337]}}

Lo leo de la siguiente forma:

Code: Select all

? SubStr(strtoken(cResp,4,":"),1,At(",",strtoken(cResp,4,":"))-1)
  30520528931
? SubStr(strtoken(cResp,5,":"),1,At(",",strtoken(cResp,5,":"))-1)
 "JURIDICA"
? SubStr(strtoken(cResp,6,":"),1,At(",",strtoken(cResp,6,":"))-1) + Space(3) + SubStr(strtoken(cResp,7,":"),1,At(",",strtoken(cResp,7,":"))-1)
 "CUIT"   "ACTIVO"
? SubStr(strtoken(cResp,8,":"),1,At(",",strtoken(cResp,8,":"))-1) 
 "NOSEL PODER S.A."
 
el problema lo tengo con la dirección cuando viene entre los apóstrofes con 2 puntos intermedios.
si hago

1.-
? SubStr(strtoken(cResp,10,":"),1,At(",",strtoken(cResp,10,':'))-1)
no devuelve nada
2.-
? SubStr(strtoken(cResp,10,":"),1))
BELGRANO AV. 1955


Alguna sugerencia?
Hay alguna otra forma de leerlo?

Gracias por su atención

Luis

Re: leer archivo

Posted: Mon Mar 20, 2017 4:01 am
by Daniel Garcia-Gil
Saludos

usa hb_jsonDecode( cResp, @hJson )

despues hJson lo puedes usar como un hash

ejemplo

? hJson["data"]["idPersona"]
? hJson["data"]["domicilioFiscal"]["direccion"]

Re: leer archivo

Posted: Mon Mar 20, 2017 11:46 pm
by surGom
Gracias Daniel. Funciona perfecto

Luis