Ejemplo funcional completo usando Json y VFP

15,854 views
Skip to first unread message

Marco Plaza

unread,
Feb 9, 2012, 4:48:04 PM2/9/12
to Comunidad de Visual Foxpro en Español
Hola, acabo de subir un demo usando la librería de Victor para que
puedan ver como se puede usar Json con vfp. El link les devolverá una
consulta simple, la serializa a json y luego se autoimprime el codigo
del script para que vean como funciona el lado del servidor.

Al final, luego de la misma consulta, veran un corto programa que
pueden cortar y ejecutar desde vfp, que usa el objeto xmlhttp para
recuperar esta consulta y convertirla de nuevo a un cursor con la
libreria de victor.

Saludos

Marco

Marco Plaza

unread,
Feb 9, 2012, 5:05:04 PM2/9/12
to Comunidad de Visual Foxpro en Español

No puse el link:

http://micaja.dyndns.biz/pruebas/jsontest.aprg

Víctor bueno supongo que esto es sólo el inicio de un trabajo que
viene! la librería es bastante extensa..muy buena.. vi que
implementaste la descarga con wininet. Por ahora he probado sólo estas
dos funciones, pero iré probándolas poco a poco y trataré de colaborar
con mas ejemplos.

A ver si hacemos una página demo de cada función..

Saludos

Marco

Victor Espina

unread,
Feb 9, 2012, 5:37:58 PM2/9/12
to publice...@googlegroups.com
Claro Marcos. Lamentablemente mi tiempo ahora es muy limitado. Otra cosa que quiero hacer es crear una version especial de ActiveVFP que permita implementar facilmente interfaces REST en forma dinamica, todo en VFP.

Pero bueno, poco a poco se llega lejos :)

Saludos

Victor Espina

Richard Gaviria

unread,
Feb 9, 2012, 5:41:37 PM2/9/12
to publice...@googlegroups.com
Muy bueno Victor... Felicitaciones!!

Saludos

Rick.



Date: Thu, 9 Feb 2012 14:37:58 -0800
From: vesp...@gmail.com
To: publice...@googlegroups.com
Subject: [vfp] Re: Ejemplo funcional completo usando Json y VFP

Victor Espina

unread,
Feb 10, 2012, 8:17:04 AM2/10/12
to publice...@googlegroups.com
Marcos, ya corregi los problemas relacionados con parseCursor().  La nueva version la puedes descargar desde aqui:


Saludos

Victor Espina

Marco Plaza

unread,
Feb 10, 2012, 8:36:00 AM2/10/12
to Comunidad de Visual Foxpro en Español
Perfecto.. ya la probé. Ahora si se recuperan los datos y se
convierten al cursor.
Gracias Victor.

Saludos.

Marco

Victor Espina

unread,
Feb 10, 2012, 8:59:34 AM2/10/12
to publice...@googlegroups.com
Oye marcos, esa clase MSXML2.XMLHTTP esta disponible en todas las versiones de windows?  porque fijandome en tu ejemplo, y con un poco de ayuda de Google, logre hacer un GET y un POST de una manera muy, pero muy facil.

Yo ya tenia una rutina para hacer un GET de una direccion URL dada, pero esta forma me parece mucho mas sencilla y directa, sin contar con que no habia podido hacer funcionar el POST con Wininet.dll.

La idea seria usar esta clase para permitir crear un wrapper que me permita interactuar con un web service tipo REST desde VFP. Hay algun caso en el que esa clase pueda no estar disponible en el equipo de un cliente?

Saludos

Victor Espina

Marco Plaza

unread,
Feb 10, 2012, 9:14:06 AM2/10/12
to Comunidad de Visual Foxpro en Español
Si Victor, todas las versiones de windows la traen. No he visto mucho
entusiasmo, pero en la tarde puedo colocar un ejemplo enviando datos
con Post para que los que quieran puedan ver como se envían datos a un
servidor usando json y subirlo a una página de prueba

Saludos

Marco

Marco Plaza

unread,
Feb 10, 2012, 9:24:30 AM2/10/12
to Comunidad de Visual Foxpro en Español
De hecho, AJAX se basa en el uso de este componente, que permite que
la página web siga funcionando mientras espera la respuesta del
servidor. Puede recuperar datos en forma sincrona/asíncrona ( en el
ejemplo la coloqué sincrona para que el programa no continúe hasta que
traiga toda la data ).

Saludos.

Marco

GeoSys Diseño de Software

unread,
Feb 10, 2012, 10:28:35 AM2/10/12
to publice...@googlegroups.com
Marco Plaza, tú dices:
Si Victor, todas las versiones de windows la traen. No he visto mucho
entusiasmo.

Te digo que casi todos los del grupo estamos siguiendo el tema, aunque sea como oyentes, ya que muchos no sabemos exactamente de que se trata hasta no tener un ejemplo y que los que tienen más experiencia aporten ideas.

Pero claro que este tema a muchos nos interesa, gracias por sus esfuerzos.


Saludos

Anthony Contreras Peralta

Costa Rica.



El 10 de febrero de 2012 08:30, Victor Espina <vesp...@gmail.com> escribió:
Excelente noticia me has dado.  Esto simplificara mucho la interaccion de VFP con servicios web basados en JSON y/o REST.

Saludos

Victor Espina


Marco Plaza

unread,
Feb 10, 2012, 10:46:48 AM2/10/12
to Comunidad de Visual Foxpro en Español
Gracias Anthony, bueno la idea es precisamente que se pueda ver la
utilidad de Json y como se puede descargar contenido desde Internet.

Descarga la libreria de Victor ( es un prg como cualquier otro ).
Luego copia y ejecuta el codigo siguiente, reemplazando por supuesto
la ruta 'X:\Pruebas\QDfOXjSON' por la de tu pc.:

**************************************
CLEAR

LOCAL loXMLHTTP as "MSXML2.XMLHTTP"
loXmlHttp = CREATEOBJECT("MSXML2.XMLHTTP")

WITH loXmlHttp

.open("GET", "http://micaja.dyndns.biz/pruebas/jsontest.aprg")
.Send()
jsonString= .responseText
jsonstring = LEFT(jsonstring,AT('}'+CHR(13),jsonstring))

ENDWITH


set path to 'X:\Pruebas\QDfOXjSON' additive && colocar la ruta de la
libreria de victor

SET PROCEDURE TO qdfoxjson additive
jsonstart()
json.parseCursor(jsonString,'CursorTest')

BROWSE
***************************************************

eso descarga una consulta desde mi pc en json, y la muestra en tu pc.
si quieres ver como mi servidor te manda los datos, simplemente navega
al link de la consulta, ahí verás el script que genera la salida, que
devuelve en el primer bloque el cursor convertido a json , luego
muestra el prg de pueba y por ultimo se auto añade el codigo del
programa que esta en el servidor.

Mas adelante colocaré en un blog todo esto para que puedan tenerlo
como referencia, así como los pasos para configurar y usar activevfp.

Saludos

Marco



On 10 feb, 11:28, GeoSys Diseño de Software <geosy...@gmail.com>
wrote:
> Marco Plaza, tú dices:
> Si Victor, todas las versiones de windows la traen. No he visto mucho
> entusiasmo.
>
> Te digo que casi todos los del grupo estamos siguiendo el tema, aunque sea
> como oyentes, ya que muchos no sabemos exactamente de que se trata hasta no
> tener un ejemplo y que los que tienen más experiencia aporten ideas.
>
> Pero claro que este tema a muchos nos interesa, gracias por sus esfuerzos.
>
> *
> *
> *Saludos*
> *
> *
> *Anthony Contreras Peralta*
> *
> *
> *Costa Rica.*

Mauricio Molinero,

unread,
Feb 10, 2012, 11:05:14 AM2/10/12
to publice...@googlegroups.com
Muy bueno todo muchachos!

También sigo como espectador todo este asunto. Por el momento estoy estudiando y probando XHTML+CSS. Cuando termine voy a arrancar con ActiveVFP.

Y si deberías pasar en limpio todo esto y dejarlo documentado en un blog. Lo mismo le decía a Walter con sus manuales didácticos de Firebird y clases.
También Victor lo que estaba estudiando de Ext-Js y JQuery.

Saludos!

Mauricio R. Molinero,

Julio Rossi

unread,
Feb 10, 2012, 11:32:52 AM2/10/12
to publice...@googlegroups.com
Si, me parece que todos andamos medio 'perdidos'. Al menos en mi caso no se muy bien donde encaja cada cosa, pero sigo el hilo para ver si voy aclarando conceptos.
Y un mil gracias desde ya por el aporte de conocimientos.

Saludos cordiales.


Julio Rossi
VFP 2 - SP2

Mik

unread,
Feb 10, 2012, 12:01:57 PM2/10/12
to publice...@googlegroups.com
Parece que de aqui va a salir algo grande. Felicitaciones por el esfuerzo y trabajo.

Saludos

Miguel Herbias
Lima-Peru

Luis Maria Guayan

unread,
Feb 10, 2012, 12:16:44 PM2/10/12
to publice...@googlegroups.com
Otro espectador !

Seguimos todos los pasos y revisiones ;-)

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

GeoSys Diseño de Software

unread,
Feb 10, 2012, 12:20:23 PM2/10/12
to publice...@googlegroups.com
Buenas Marco Plaza, hice lo que me comentas.

Lo único que cambié fue:
set path to 'x:\Pruebas\QDfOXjSON' additive && colocar la ruta de la libreria de victor
Por este:
set path to 'C:\Pruebas\QDfOXjSON' additive && colocar la ruta de la libreria de victor

Y me tira el siguiente error que va como una imagen en dato adjunto.

Claro la prueba la estoy haciendo en Windows XP SP2, tendré que probarlo en Windows7?

Ahora, el archivo MSXML3.DLL donde lo consigo, estoy un poco enredado en el asunto.

Saludos

Anthony Contreras Peralta

Cosrta Rica.
Pantalla1.bmp

Luis Maria Guayan

unread,
Feb 10, 2012, 12:32:29 PM2/10/12
to publice...@googlegroups.com
Intenta poner un INKEY(10) entre las sig. lineas:

...
INKEY(10)

jsonString= .responseText
jsonstring = LEFT(jsonstring,AT('}'+CHR(13),jsonstring))
...

Habría que ver la forma de saber cuando está lista la consulta

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________


Marco Plaza

unread,
Feb 10, 2012, 1:25:42 PM2/10/12
to Comunidad de Visual Foxpro en Español
Hola, disculpa que no coloqué el parámetro siguiente:

.open("GET", "http://micaja.dyndns.biz/pruebas/jsontest.aprg",.f.)

eso hará que el servicio continúe al terminar la traída de los datos.

Saludos
Marco


On 10 feb, 13:32, Luis Maria Guayan <luismar...@gmail.com> wrote:
> Intenta poner un INKEY(10) entre las sig. lineas:
> ...
> .open("GET","http://micaja.dyndns.biz/pruebas/jsontest.aprg")
> .Send()
> INKEY(10)
> jsonString= .responseText
> jsonstring = LEFT(jsonstring,AT('}'+CHR(13),jsonstring))
> ...
> Habría que ver la forma de saber cuando está lista la consulta
>
> Luis María Guayán
> Tucumán, Argentina
> _________________________http://www.PortalFox.com

Luis Maria Guayan

unread,
Feb 10, 2012, 1:30:37 PM2/10/12
to publice...@googlegroups.com
Funcionó perfecto, Gracias !

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________


GeoSys Diseño de Software

unread,
Feb 10, 2012, 1:38:56 PM2/10/12
to publice...@googlegroups.com
Ahora sí esta funcionando perfectamente.

Muchas Gracias.


Saludos

Anthony Contreras Peralta

Costa Rica.

Victor Espina

unread,
Feb 10, 2012, 2:31:22 PM2/10/12
to publice...@googlegroups.com
Aqui les tengo un ejemplo practico de la vida real donde entra en uso esto del JSON.  Supongamos que queremos correr una consulta en Google desde nuestra aplicacion VFP.  Google expone un API public que permite hacer busquedas y devuelve los resultados en forma de JSON.

Por ejemplo, si queremos buscar "VISUAL FOXPRO", el codigo seria asi:


SET PROCEDURE TO qdfoxJSON
JSONStart()
JSON.stringDelimitator = ["]
cGoogleAPI="http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q="
oData = JSONObject("url:" + cGoogleAPI + "Visual%20FoxPro")

?"Estimated results:",""
??oData.responseData.Cursor.estimatedResultCount
FOR EACH oREsult IN oData.responseData.Results
 ?"",oResult.titleNoFormatting,"(" + oResult.URL + ")"
ENDFOR

Basicamente lo que hacemos aqui es invocar un URL del Google que nos permite hacer una busqueda y usamos su resultado, el cual viene en formato JSON, para recrear el objeto original en VFP.

Luego, usamos ese objeto para acceder a los resultados.

Saludos

Victor Espina

Yvan Carranza

unread,
Feb 10, 2012, 2:36:18 PM2/10/12
to publice...@googlegroups.com
Buenas Tardes Victor,
De donde obtengo el archivo qdfoxJSON?
Estoy buscando en los post anterior y no veo el Link
 
Podrias proporcionarmelo por favor
 
Gracias.
 
PD. Se ve interesante el tema.
 
Yvan. Carranza.

Victor Espina

unread,
Feb 10, 2012, 2:39:12 PM2/10/12
to publice...@googlegroups.com

Yvan Carranza

unread,
Feb 10, 2012, 2:40:40 PM2/10/12
to publice...@googlegroups.com
Gracias,

 
2012/2/10 Victor Espina <vesp...@gmail.com>

Nilton CPM

unread,
Feb 10, 2012, 2:46:18 PM2/10/12
to publice...@googlegroups.com
Hola Victor
 
Pelo que entendi até agora é semelhante ao WebServices só que com outro metodo de transporte seria isso.
 
Isso que nos vemos até agora é do lado do cliente e do lado do servidor como seria, que ferramentas se usa para montar isso no lado do servidor.
 
Fico ja imaginando ter uma aplicação e montar um servidor com Json e acessar sua base de dados de qualquer lugar, tanto rede interna como Internet.
 
 
Estou certo ou ja estou imaginando de mais ???

Victor Espina

unread,
Feb 10, 2012, 2:54:50 PM2/10/12
to publice...@googlegroups.com, Nilton CPM
Es correcto Nilton. JSON es otra forma de poder comunicarte con un recurso remoto, asi como lo es SOAP.

Con respecto a como hacer del lado del servidor para devolver los datos en formato JSON, depende del lenguaje con el que estes programando.  La mayoria de los lenguajes server-side, como PHP, Python, .NET, etc, ofrecen formas nativas de retornar datos en formato JSON.

Basicamente lo que haces es:

a) Recibes el requerimiento y evaluas los parametros recibidos
b) Buscas los datos indicados o realizas la accion indicada y obtienes el resultado. Este resultado tipicamente se expresa en forma de un objeto o de un array de resultados.
c) Conviertes los resultados a JSON y lo devuelves.

Lo que se busca al final es encapsular en el servidor todas las reglas de negocio de la aplicacion asi como el acceso a todos los datos de la aplicacion y hacerlas accesibles a traves de una API, como puede ser un WebService o una interfaz REST.

Luego, esta interfaz la puedes acceder desde cualquier parte:
a) Una aplicacion de escritorio
b) Una aplicacion web
c) Una aplicacion movil

Saludos

Victor Espina

Nilton CPM

unread,
Feb 10, 2012, 2:46:18 PM2/10/12
to publice...@googlegroups.com
Hola Victor
 
Pelo que entendi até agora é semelhante ao WebServices só que com outro metodo de transporte seria isso.
 
Isso que nos vemos até agora é do lado do cliente e do lado do servidor como seria, que ferramentas se usa para montar isso no lado do servidor.
 
Fico ja imaginando ter uma aplicação e montar um servidor com Json e acessar sua base de dados de qualquer lugar, tanto rede interna como Internet.
 
 
Estou certo ou ja estou imaginando de mais ???
 
 
 
 

Sent: Friday, February 10, 2012 5:31 PM
Subject: Re: [vfp] Re: Ejemplo funcional completo usando Json y VFP

GeoSys Diseño de Software

unread,
Feb 10, 2012, 3:05:56 PM2/10/12
to publice...@googlegroups.com
Hola Víctor, con el ejemplo de buscar con Google, corrí el código y me tira un mensaje de error en VFP que me dice:

Program Error

Unknown member RESPONSEDATA.

Cancel   Suspend   Ignore   Help


En la línea:
??oData.responseData.Cursor.estimatedResultCount 

Saludos

Anthony Contreras Peralta

Costa Rica





2012/2/10 Victor Espina <vesp...@gmail.com>

Victor Espina

unread,
Feb 10, 2012, 3:13:01 PM2/10/12
to publice...@googlegroups.com
No lo se Jose. Yo acabo de copiar el codigo que puse aqui, lo pegue en un PRG nuevo lo corri y funciono perfecto.

Por el error que mencionas lo mas probable es que el URL no te esta trayendo nada. Prueba a ejecutar esto:

SET PROCEDURE TO qdFOXJSON
JSONStart()
?cJSON

Si no te aparece nada en pantalla es porque tienes algun problema de conexion, seguridad, antivirus, etc, que esta impidiendo a VFP conectarse a internet.

Saludos

Victor Espina

GeoSys Diseño de Software

unread,
Feb 10, 2012, 12:45:44 PM2/10/12
to publice...@googlegroups.com
Luis María G. Gracias, le puse el INKEY(0) y logró hacer el browse en dos ocasiones, pero es que en estos momentos estoy bajando unos archivos de Internet, lo intento y vuelve a dar el mismo, no puede conectarse.

Posiblemente sea el acceso a Internet que lo esté afectando en la conexión, cuando termine el archivo de bajar lo probaré a ver que pasa.

Muchas Gracias.

Saludos

Anthony Contreras Peralta

Costa Rica.

GeoSys Diseño de Software

unread,
Feb 10, 2012, 3:51:41 PM2/10/12
to publice...@googlegroups.com
SET PROCEDURE TO qdFOXJSON
JSONStart()
?cJSON


Con ese si me devuelve el resultado en pantalla:


¿Que será?


Saludos

Anthony Contreras Peralta

Costa Rica.

Meforero

unread,
Feb 10, 2012, 6:38:43 PM2/10/12
to Comunidad de Visual Foxpro en Español
Lee detalladamente todo el hilo ....

On Feb 10, 8:36 pm, Yvan Carranza <yvan.carra...@gmail.com> wrote:
> Buenas Tardes Victor,
> De donde obtengo el archivo qdfoxJSON?
> Estoy buscando en los post anterior y no veo el Link
>
> Podrias proporcionarmelo por favor
>
> Gracias.
>
> PD. Se ve interesante el tema.
>
> Yvan. Carranza.
>

Meforero

unread,
Feb 10, 2012, 6:43:20 PM2/10/12
to Comunidad de Visual Foxpro en Español
Yo estoy ejecutando este codigo y no sale nada... pero si trae una
cadena larga en geturl... que sera ?


SET PROCEDURE TO qdfoxJSON
JSONStart()

cJSON = GETURL("http://ajax.googleapis.com/ajax/services/search/web?
v=1.0&q=Visual%20Foxpro")
? cJSON

JSON.stringDelimitator = ["]
cGoogleAPI="http://ajax.googleapis.com/ajax/services/search/web?
v=1.0&q="
oData = JSONObject("url:" + cGoogleAPI + "Visual%20FoxPro")

IF oData.responseData > 0
? "Estimated results:",""
?? oData.responseData.Cursor.estimatedResultCount
FOR EACH oREsult IN oData.responseData.Results
? "",oResult.titleNoFormatting,"(" + oResult.URL + ")"
ENDFOR
ELSE
? "nada que mostrar"
ENDIF


Douglas Sánchez Guillén

unread,
Feb 10, 2012, 7:07:30 PM2/10/12
to publice...@googlegroups.com
Hola que tal Victor me da error el ejemplo de abajo ya tengo el prg actualizado..
adjunto la imagen.

Gracias de ante manos.

Douglas
--
Ing. Douglas Sánchez Guillén
      Consultor Informatico
Movistar: 505 8759 - 5342
Claro: 505 88495476

error.png

GeoSys Diseño de Software

unread,
Feb 10, 2012, 8:43:59 PM2/10/12
to publice...@googlegroups.com
Sí, ese error sigue apareciendo, lo raro es que si ejecutas este otro si despliega la información en la pantalla.
Esperaremos a ver que es lo que pasa.


Saludos

Anthony Contreras Peralta

Costa Rica.




Victor Espina

unread,
Feb 11, 2012, 7:16:08 AM2/11/12
to publice...@googlegroups.com
Como les digo, no se cual pueda ser el problema. Yo lo he probado varias veces y funciona correctamente.

Alguien logro que le funcionara o a todos les ha dado error ?

Victor Espina

Julio Rossi

unread,
Feb 11, 2012, 8:18:05 AM2/11/12
to publice...@googlegroups.com
Mismo error que los otros compañeros.
En el único lugar que encuentro la propiedad responsedata es en:

odata.buff.responsedata que trae 0. (Ver adjunto)

Y en la clase qdfoxjson no puedo ubicar donde se crea esta propiedad en el objeto JSONObject.

Saludos!!

Julio Rossi

Mario Alfredo

unread,
Feb 23, 2012, 5:18:55 PM2/23/12
to Comunidad de Visual Foxpro en Español
si de expectadores se trata leo y leo
pero nada, sera por mis 54 años,
que el domingo los cumpli 19 02

On Feb 10, 11:16 am, Luis Maria Guayan <luismar...@gmail.com> wrote:
> Otro espectador !
> Seguimos todos los pasos y revisiones ;-)
>
> Luis María Guayán
> Tucumán, Argentina
> _________________________http://www.PortalFox.com

Marco Plaza

unread,
Feb 23, 2012, 6:43:47 PM2/23/12
to Comunidad de Visual Foxpro en Español

Chequea este tutorial:

http://www.learn-ajax-tutorial.com/Json.cfm

Marco

Jairo

unread,
Apr 13, 2012, 1:13:58 PM4/13/12
to publice...@googlegroups.com
Alguien ha podido mostrar con ActiveVfp Registros de la tabla a dos Columnas
??

JM

-----Mensaje original----
De: publice...@googlegroups.com
[mailto:publice...@googlegroups.com] En nombre de Mario Alfredo
Enviado el: jueves, 23 de febrero de 2012 05:19 p.m.
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] Re: Ejemplo funcional completo usando Json y VFP

ArturoPC

unread,
Apr 13, 2012, 1:45:31 PM4/13/12
to publice...@googlegroups.com
Estoy también siguiendo sin comentar. En mi siguiente proyecto WS trataré de trabajar con la clase.

Más bien, estoy interesado en la utilidad que tiene el JSon de Víctor que vi en otro hilo: usar una función que devuelva varios parámetros. Se me ha metido en la cabeza hacer un validador de XML basado en su esquema XSD y un lector universal de XML todo en VFP. Casi seguro que ahí también lo usaré.

Slds,

ArturoPC.


El viernes, 10 de febrero de 2012 10:28:35 UTC-5, José Anthony Contreras Peralta escribió:
Marco Plaza, tú dices:
Si Victor, todas las versiones de windows la traen. No he visto mucho
entusiasmo.

Te digo que casi todos los del grupo estamos siguiendo el tema, aunque sea como oyentes, ya que muchos no sabemos exactamente de que se trata hasta no tener un ejemplo y que los que tienen más experiencia aporten ideas.

Pero claro que este tema a muchos nos interesa, gracias por sus esfuerzos.


Saludos

Anthony Contreras Peralta

Costa Rica.

Raúl Antonio Juárez

unread,
Mar 9, 2014, 8:43:18 PM3/9/14
to publice...@googlegroups.com
Muchas gracias por compartirlo.... Me fue muy util para hacer un sistema de Geolocalizacion.
Una vez mas... Muchas Gracias.


El viernes, 10 de febrero de 2012 10:17:04 UTC-3, Victor Espina escribió:
Marcos, ya corregi los problemas relacionados con parseCursor().  La nueva version la puedes descargar desde aqui:


Saludos

Victor Espina

Angel Dario Rodriguez

unread,
Mar 9, 2014, 10:30:13 PM3/9/14
to publice...@googlegroups.com
HAY QUE TENER UN USUARIO EN MEDIFIRE PARA DESCARGARLO, NO ESTA EN OTRO LINK?

Raúl Antonio Juárez

unread,
Mar 10, 2014, 12:35:01 AM3/10/14
to publice...@googlegroups.com

Carla Herrera

unread,
Jun 4, 2014, 5:05:54 PM6/4/14
to publice...@googlegroups.com
hola... m interesa mucho l tema... pro el link sta caido.. si pudiras volver a levantarlo o publicarlo d nuevo seria genial
gracias d antemano... :)

carla

Victor Espina

unread,
Jun 4, 2014, 6:13:45 PM6/4/14
to publice...@googlegroups.com
No se de donde bajar ahora el ejemplo de Marcos, pero la libreria de JSON en VFP se convirio en un proyecto en CodePlex:


La version actual es la 1.8 y estoy trabajando para liberar la version 1.9, la cual ofrecera un rendimiento 3.5 veces superior a la version actual.


Saludos

Victor Espina

Carla Herrera

unread,
Jun 5, 2014, 2:55:59 PM6/5/14
to publice...@googlegroups.com
hola... graias x resp tan pronto... t molesto con 1 duda +... necesito mandar datos al ws en formato json con l metodo post... revise todo el codigo y no encuentro como hacerlo.. xfa dam 1 mano...

gracias...

Victor Espina

unread,
Jun 5, 2014, 3:11:55 PM6/5/14
to publice...@googlegroups.com
LOCAL xhr
xhr = CREATEOBJECT("Microsoft.XMLHTTP")
xhr.Open("POST", "http://www.mydomain.com/posthandler.asp", .f.)
xhr.setRequestHeader('Content-Type', 'application/json')
xhr.send("data=" + lcJsonStringInUTF8)

LOCAL lcResultText
lcResultText = xhr.responseText;

? lcResultText
xhr = null

Revisa tambien:
http://fox.wikis.com/wc.dll?Fox~XmlHttp

Saúl Piña

unread,
Jun 5, 2014, 3:36:28 PM6/5/14
to publice...@googlegroups.com
Funciona bien, pero aun no entiendo en qué especificamente puede ser funcional.

Raúl Antonio Juárez

unread,
Jun 5, 2014, 3:41:46 PM6/5/14
to publice...@googlegroups.com
por ejemplo, consultar en google maps la distancia de un recorrido entre dos o mas puntos.

Saúl Piña

unread,
Jun 5, 2014, 3:50:38 PM6/5/14
to publice...@googlegroups.com
Ok, pero como visualizas el recorrido? es decir, por lo que vi en el ejmplo te devuelve respuestas de algun resultado en el propio Screen de VFP.

Raúl Antonio Juárez

unread,
Jun 5, 2014, 3:59:59 PM6/5/14
to publice...@googlegroups.com
No, no te lo devuelve en el screen
Lo que devuelve es una cadena de caracteres en una variable...
ahora lo que queda, es tratar esa cadena de caracteres

Hugo C.

unread,
Jun 5, 2014, 4:44:32 PM6/5/14
to publice...@googlegroups.com
Primero hay que aprender un poco de Servicios Web REST

Mauricio Gonzalez

unread,
Jun 7, 2014, 1:41:03 PM6/7/14
to publice...@googlegroups.com
http://www.mediafire.com/?aw2o54t98zzopx9, este link para descargar la libreria de Victor no esta o esta roto, ahora de donde puedo bajar la libreria de Victor??

Fernando D. Bozzo

unread,
Jun 7, 2014, 2:46:34 PM6/7/14
to publice...@googlegroups.com
Hola Mauricio:

En este mismo hilo Víctor dijo que este proyecto está disponible en CodePlex, y dejó el link:

https://qdfoxjson.codeplex.com/


Saludos.-

Victor Espina

unread,
Jun 9, 2014, 10:13:43 AM6/9/14
to publice...@googlegroups.com
Por cierto, estoy dando los ultimos toques a la version 1.9 la cual traera un nuevo parser de JSON que es 3.5 mas rapido que el actual.  Esto permitiria procesar cadenas JSON grandes en pocos segundos en lugar de minutos.

Saludos

Victor Espina

Carla Herrera

unread,
Jun 20, 2014, 3:10:41 PM6/20/14
to publice...@googlegroups.com
muchas gracias x la ayuda :) ... tare atenta pa la salida d tu prox version

Carla Herrera

unread,
Jun 20, 2014, 3:15:09 PM6/20/14
to publice...@googlegroups.com
muchas gracias x la ayuda :) ... stare atenta pa la salida d tu prox version


El jueves, 5 de junio de 2014 15:11:55 UTC-4, Victor Espina escribió:

William López

unread,
Nov 18, 2014, 12:19:37 PM11/18/14
to publice...@googlegroups.com
Espero me puedan ayudar. He copiado el código que sugirieron a Carla Herrera y hecho mis
variantes con la data y la url, pero me da el mensage:

"Código de excepción OLE IDispatch 0 de msxml3.dll: Error en la descarga del recurso solicitado"

lo que se envía es:
service_code = 'dc_909'
language_code = 'es'
Transaction_code = '00001'
UserId_code = '29618'
account_code = '603628399852000190337'
security_cod = ''

y espera recibir esa misma información con otra adicional.

el programa es:

*--------------------
LOCAL xhr
xhr = CREATEOBJECT("Microsoft.XMLHTTP")
  xhr.setRequestHeader('Content-Type', [text/xml;charset=ISO Latin-1 Character Set])

* xhr.setRequestHeader('Content-Type', 'application/json')
* xhr.send("data=" + lcJsonStringInUTF8)

xhr.send(["dc_909","es", "00005", "29618", "603628399852000190337"])
LOCAL lcResultText
lcResultText = xhr.responseText;

? lcResultText
* eop---------------

Por su ayuda, les estar muy agradecido.

William

William López

unread,
Nov 29, 2014, 6:16:51 PM11/29/14
to publice...@googlegroups.com

Hola Compañeros foristas:


Quiero agradecer especialmente a Raúl Antonio Juárez , quien me brindo mucho apoyo y seguimiento a este problema, así como a José Enrique Llopis, que también me brindo su apoyo.


Al final, encontramos la solución a mi problema, por lo que posteo el programa completo para que cualquier compañero con un problema similar, pueda apoyarse en el.


El código que sigue es de un ejemplo que Víctor Espina dio en el foro, aunque aquí, ya lo modifique para que funcione con mis requerimientos, así como el qdfoxJSON, que sirve para efectuar el parse es de Víctor.




SET PATH to "f:\vfp9\....."

CLEAR


LOCAL xhr

LOCAL cPto


cJsonRpcCall = '{"jsonrpc": "2.0", "method": "909", "id": "00005","params": ["es", "00005", "123456:29618", "603628399852000190337"]}'

cPuerto = "1421"


xhr = CREATEOBJECT("Microsoft.XMLHTTP")

xhr.Open("POST", "https://dev-proveedor.com/dcjsonrpc/:cPuerto", .f.)


xhr.setRequestHeader('Content-Type', ['application/json-rpc 2.0';charset=ISO Latin-1 Character Set])

xhr.send(cJsonRpcCall)


LOCAL lcResultText

lcResultText = xhr.responseText;


* esa es la respuesta del servicio web

?? lcResultText



* aqui el parse. Gracias a Victor Espina y su parse: qdfoxJSON


SET PROCEDURE TO qdfoxJSON

JSONStart()


* Deserializing object...

LOCAL cJSON

cJSON = xhr.responseText


RELEASE lcResultText

lcResultText = JSON.Parse(cJSON)


? "json = "

?? lcResultText.jsonrpc

? "id = "

?? lcResultText.id

? "result = "


#IF VERSION(5) >= 700

?"",lcResultText.result[1]

?"",lcResultText.result[2]

?"",lcResultText.result[3]

?"",lcResultText.result[6]

?"",lcResultText.result[11]

#ELSE

?"",lcResultText.result.Item[1]

?"",lcResultText.result.Item[2]

?"",lcResultText.result.Item[3]

?"",lcResultText.result.Item[6]

?"",lcResultText.result.Item[11]

#ENDIF

?

?"Test completed"

?


Gracias a todos y espero que esto pueda ayudar al alguien más.

Saludos

Raúl Antonio Juárez

unread,
Dec 1, 2014, 11:08:13 PM12/1/14
to publice...@googlegroups.com
q bien, cuanto me alegro que hayas resuelto con exito tu inconveniente!
Sera hasta la proxima...


Intel Man

unread,
Feb 9, 2012, 4:59:53 PM2/9/12
to publice...@googlegroups.com
Hola, y donde se puede ver esa demo?  O_O

Saludos


> Date: Thu, 9 Feb 2012 13:48:04 -0800
> Subject: [vfp] Ejemplo funcional completo usando Json y VFP
> From: stma...@gmail.com
> To: publice...@googlegroups.com
>
> Hola, acabo de subir un demo usando la librería de Victor para que
> puedan ver como se puede usar Json con vfp. El link les devolverá una
> consulta simple, la serializa a json y luego se autoimprime el codigo
> del script para que vean como funciona el lado del servidor.
>
> Al final, luego de la misma consulta, veran un corto programa que
> pueden cortar y ejecutar desde vfp, que usa el objeto xmlhttp para
> recuperar esta consulta y convertirla de nuevo a un cursor con la
> libreria de victor.
>
> Saludos
>
> Marco

Victor Espina

unread,
Feb 10, 2012, 9:30:44 AM2/10/12
to publice...@googlegroups.com
Message has been deleted

Boris Martìnez

unread,
Nov 9, 2015, 3:41:54 PM11/9/15
to Comunidad de Visual Foxpro en Español
Buenas tardes al grupo, me he topado con la situación que el sitio al que quiero enviarle datos mediante un json, me pide registrar un UUID y un token, he leido que debe ser enviado en el content pero no se en que formato o sintaxis debe ser enviado, por favor si saben les agradecere

Boris

Raúl A. Juárez

unread,
Nov 9, 2015, 3:46:04 PM11/9/15
to publice...@googlegroups.com
esa data te tiene que brindar el sitio.
Que sitio es?


El día 9 de noviembre de 2015, 17:41, Boris Martìnez
<auditor...@gmail.com> escribió:

Boris Martìnez

unread,
Nov 9, 2015, 4:50:32 PM11/9/15
to Comunidad de Visual Foxpro en Español
Es un sitio de una aplicación que estan desarrollando para la empresa, pero nos hemos topado con que no logramos hacer el registro en la pagina por que nos pide un APPID, y un token que es una serie como de 110 - 120 caracteres

Raúl A. Juárez

unread,
Nov 9, 2015, 4:58:00 PM11/9/15
to publice...@googlegroups.com

Tenés q consultarle al desarrollador de la aplicación. Solo el sabe q hizo.

Raúl A. Juárez

unread,
Nov 9, 2015, 4:58:32 PM11/9/15
to publice...@googlegroups.com

Tenés alguna documentación de la aplicación?

El nov. 9, 2015 6:50 PM, "Boris Martìnez" <auditor...@gmail.com> escribió:

Boris Martinez

unread,
Nov 9, 2015, 5:22:14 PM11/9/15
to publice...@googlegroups.com
Esta es la documentacion recibida
20151006-documentacion-webservice.pdf

Raúl A. Juárez

unread,
Nov 9, 2015, 9:03:47 PM11/9/15
to publice...@googlegroups.com

A lo q se refiere el doc es a la cabecera de la conexión.
El envió de la cabecera lo hago habitualmente en php. Me fijo en la doc de vfp y veo de ayudarte

Boris Martinez

unread,
Nov 10, 2015, 1:57:48 PM11/10/15
to publice...@googlegroups.com
Gracias y tienes un ejemplo de como enviarlo en php?

William López M.

unread,
Nov 20, 2015, 1:03:56 PM11/20/15
to publice...@googlegroups.com
Hola Boris Martinez:
Disculpa que te responda hasta hoy, pero aqui va mi contribución a tu problema.

No estoy seguro si esto pueda ayudarte, pero puse un correo del 29/11/2014, aqui transcribo el ejemplo que a mi me sirvio, este es:

==================================================================================================


* pones tu propio Path
=============================================================

Prueba poner el APP_ID y el APP_TOKEN en la parte siguiente del ejem. de arriba:

cJsonRpcCall = '{"jsonrpc": "2.0", "method": "909", "id": "00005","params": ["es", "00005", "123456:29618", "603628399852000190337"]}'

antes o despues del "id:" o del "method", te quedaria algo así:


o así:
xhr.setRequestHeader("Authentication", "Basic " + encodeBase64(username + ":" + password)

o así:
xhr.setRequestHeader("Authorization", "Basic " + window.btoa(username + ":" + password));

o asi:
{ "tokenId": "AQIC5w...NTcy*", "successUrl": "/openam/console" }


claro, con tu información de APP_ID o APP_TOKEN en lugar de las de los ejem., es de probar y probar.

Revisa los siguientes links:


aqui hay un ejemplo con google, y esta en VFP.

del creador de west wind
y

Espero que te sirva,
Saludos

William López M.

Jackson Caminho

unread,
Nov 1, 2016, 11:45:18 AM11/1/16
to Comunidad de Visual Foxpro en Español

Foreign Victor Espina, ok?

Eu estava assistindo a este grupo e não sei se você pode me ajudar ..

Eu tenho um retorno de um JSON, e eu não sou capaz de tratá-lo.

Eu tenho uma mão?

Em quarta-feira, 4 de junho de 2014 19:13:45 UTC-3, Victor Espina escreveu:
Nenhum onde agora baixar o exemplo de Mark, mas biblioteca JSON em VFP convirió em um projeto no CodePlex:


A versão atual é 1,8 e estou trabalhando para liberar a versão 1.9, que irá oferecer um rendimento 3,5 vezes maior do que a versão atual.


lembranças

Victor Espina


Na quarta-feira, junho 4, 2014 17:05:54 UTC-4, Carla Herrera escreveu:
Olá ... l m tema muito interessado ... ligar pro sta .. se você pudiras caído para construí-lo ou publicá-lo novamente seria ótimo d
d graças antecedência ... :)

carla

zoe peralta

unread,
Aug 8, 2020, 9:42:02 AM8/8/20
to Comunidad de Visual Foxpro en Español
Hola el link no funciona ... quiero ver el ejemplo, saludos

Irwin Rodriguez

unread,
Aug 8, 2020, 11:09:13 AM8/8/20
to publice...@googlegroups.com
Hola, echale un ojo a esta librería y comenta si no la entiendes o tienes problemas.

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/e667fd2c-70c3-4998-af50-35ba0ec24395n%40googlegroups.com.

Alejandro

unread,
Jul 22, 2021, 1:34:02 PM7/22/21
to Comunidad de Visual Foxpro en Español

Hola, tendrás alguna app ? necesito lo siguiente:
Leer un hhtps con un documento json, subirlo a un query con una busqueda de fecha.
Urgeme, gracias por leer y quedo pendiente de tu pronta respuesta.
Alejandro

HernanCano

unread,
Jul 22, 2021, 2:58:41 PM7/22/21
to Comunidad de Visual Foxpro en Español
Reply all
Reply to author
Forward
0 new messages