Page 1 of 1

Archivo JSON

PostPosted: Tue Aug 23, 2016 11:27 am
by TOTOVIOTTI
Hola amigos,
me envían un archivo JSON a una dirección de internet:

'http://xxx.xxx.xxx.xxx/testing/distribuidora/webservice/api/obtenerProductos'

y necesito descargar la info y parsearla para descargarla en mi sistema, estuve leyendo
y probando ejemplos con el hb_JsonDecode, pero no puedo hacerla funcionar con mi
dirección, probablemente me esté faltando información.

Alguien tendrá un ejemplo para construir esta descarga?

Desde ya, muchas gracias!
Roberto

Re: Archivo JSON

PostPosted: Tue Aug 23, 2016 12:03 pm
by cmsoft
Si puedes descargarlo a tu equipo y despues analizarlo
Code: Select all  Expand view
#include "fivewin.ch"

function Main()
       
   local nRet
   local cFile  := "c:\fwh\temp.txt"
 
   nRet := DOWNLOADFILE( "http://xxx.xxx.xxx.xxx/testing/distribuidora/webservice/api/obtenerProductos/archivo.json", ;
                         cFile  )
    MsgStop( nRet )

RETURN NIL

#pragma BEGINDUMP

#include <Windows.h>
#include <hbapi.h>
#include "hbapiitm.h"
#include "hbstack.h"
#include <hbvm.h>
#include <urlmon.h>
HB_FUNC( DOWNLOADFILE )

{
   HRESULT hr;

   hr = URLDownloadToFile( NULL, hb_parc( 1 ), hb_parc( 2 ), 0, NULL );
 
   hb_retnl( hr ) ;
}

#pragma ENDDUMP

Es una idea nomas... no se si te deja un archivo en ese sitio...

Re: Archivo JSON

PostPosted: Tue Aug 23, 2016 12:15 pm
by TOTOVIOTTI
Gracias! Perfecto!!!!!

Re: Archivo JSON (Encode)

PostPosted: Wed Aug 24, 2016 7:15 pm
by TOTOVIOTTI
Amigos,
después de decodificar un JSON que me enviaron, debo actualizar info y volverla
a generar en JSON.
Tengo una matriz, que contiene el Código del Artículo, Descripción y Precio Unitario, por ejemplo.
Como hago para volver a generar un archivo JSON para subirlo a una url?
Creo que se usa la función inversa hb_JsonEncode, pero no encuentro material
para ver los parámetros que se usan...
Muchas gracias!
Roberto

Re: Archivo JSON

PostPosted: Wed Aug 24, 2016 7:22 pm
by karinha

Re: Archivo JSON

PostPosted: Wed Aug 24, 2016 7:28 pm
by TOTOVIOTTI
Eso lo usé para descargar el Json, ahora necesito armar un archivo Json... se entiende?
El proceso inverso... subir info de una matriz a un archivo Json.
Gracias!
Roberto

Re: Archivo JSON

PostPosted: Wed Aug 24, 2016 8:13 pm
by TOTOVIOTTI
Amigos... lo hice medio casero... pero funciona, capaz hay algo un poco más sofisticado...
Por ahí le sirve a alguno:

FUNCTION GENERARJSON()
Local hJson := hash()
local cJson := '{"clientes":['
(bclientes)->(dbgotop())
while !(Bclientes)->(eof())
hJson["Código"] := (bclientes)->codigo
hJson["Razón Social"] := alltrim(hb_OemToAnsi((bclientes)->NOMBRE))
hJson["Dirección"] := alltrim(hb_OemToAnsi((bclientes)->direccion))
hJson["Teléfono"] := alltrim((bclientes)->te)
hJson["C.U.I.T."] := alltrim((bclientes)->cuit)
cJson += hb_JsonEncode( hJson,.f. )
(bclientes)->(dbskip())
IF !(Bclientes)->(eof())
cJson +=","
ENDIF
enddo
cJson+=']}'
MemoWrit( "clientes.json", cJson )
RETURN NIL

Saludos...

Re: Archivo JSON

PostPosted: Fri Aug 26, 2016 12:36 am
by LuisPonce
Buenas noches

En que libreria está hb_JsonEncode( )

Gracias

Re: Archivo JSON

PostPosted: Fri Aug 26, 2016 12:42 pm
by TOTOVIOTTI
Es una función de Harbour...
Saludos

Re: Archivo JSON

PostPosted: Tue Oct 24, 2023 6:40 pm
by elmoiquique
LuisPonce wrote:Buenas noches

En que libreria está hb_JsonEncode( )

Gracias


Hola

sabes en que libreria esta y desde que version,,, tengo entendido que funciona tanto en Harbour como en Xharbour