Crear fichero Json

3,003 views
Skip to first unread message

Discdur

unread,
Nov 11, 2016, 11:51:00 AM11/11/16
to Comunidad de Visual Foxpro en Español
Hola a todos,

Necesito crear un fichero JSON para intercambiar informacion entre mi sistema y una APP. Tengo que usar JSON puesto que la APP usa este tipo de fichero para actualizar sus datos.

Ya me he informado de como se estructura un fichero JSON (parecido a XML) pero mi duda es: puedo crearlo desde VFP igual como si se creara un fichero texto? o tengo que usar algun encoder especial?

Mi intención sería crearlo usando el fcreate y el fputs.

Gracias.

Germán Fabricio Valdez

unread,
Nov 11, 2016, 2:01:27 PM11/11/16
to Comunidad de Visual Foxpro en Español

Victor Espina

unread,
Nov 12, 2016, 1:35:58 PM11/12/16
to Comunidad de Visual Foxpro en Español
Parser JSON hecho con 100% codigo VFP, compatible con todas las versiones de VFP de al 6.0 en adelante:

http://noiqs.com/sos/json.prg


Ejemplo:

DO json.prg  && Crea el objeto publico JSON


SELECT tabla
SCATTER NAME oRecord

cJSON
= JSON.stringify(oRecord)
?cJSON  --> { "campo" : "valor",  "campo2" : valor }


oData
= JSON.Parse([{ "nombre": "Victor", "apellido" : "Espina", "edad" : 46 }])
?oData.nombre --> "Victor"
?oData.Apellido --> "Espina"
?oData.Edad --> 46




Saludos

Victor Espina

El viernes, 11 de noviembre de 2016, 13:51:00 (UTC-3), Discdur escribió:

Jose Luis Barros

unread,
Nov 12, 2016, 4:50:49 PM11/12/16
to Comunidad de Visual Foxpro en Español
Bueno, en realidad, afortunadamente, ya existen muchas librerías para tratar el formato JSON con VFP.

A mi me ha gustado mucho qdfoxjson.prg bastante fácil de usar y totalmente hecha en VFP con el código disponible por si quieres extenderla. Dentro del prg vienen ejemplos de uso.

Discdur

unread,
Nov 14, 2016, 12:01:43 PM11/14/16
to Comunidad de Visual Foxpro en Español
Muchas gracias por sus comentarios.

Me he centrado en el qdfoxjson.

Pero tengo la siguiente duda.

Ya puedo crear el objeto Json, pero ¿como creo el fichero Json para poderlo pasar a otros sistemas?

TEXT TO cPerson
fullname": "George Jetson",
"employer": "Spacely Sprockets",
"spouse": { "fullname": "Jane", "age": 20, "shopping": true },
"children": [ "Elroy", "Judy" ],
"isCool": true}
ENDTEXT

oPerson = JSON.Parse(cPerson)


ahora, como puedo crear el fichero Json?

Gracias.




Jose Antonio Blasco

unread,
Nov 14, 2016, 1:09:22 PM11/14/16
to Comunidad de Visual Foxpro en Español
"Discdur", no se si te has dado cuenta, pero el creador del "qdfoxjson" es tambien Victor Espina, por lo que si te recomienda la librería "json.prg", que además es más reciente, será por algo ¿no?.

Un saludo.



Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2

"No hay camino hacia la libertad, la libertad es el camino" - Indira Gandhi
“Nunca te olvides de sonreír, porque el día que no sonrías  será un día perdido”  -  Charles Chaplin
“Todo el mundo quiere tener un amigo, pero pocos se toman la molestia de ser uno”
- Anónimo

Victor Espina

unread,
Nov 14, 2016, 3:40:34 PM11/14/16
to Comunidad de Visual Foxpro en Español
TEXT TO cPerson
fullname
": "George Jetson",
"
employer": "Spacely Sprockets",
"
spouse": { "fullname": "Jane", "age": 20, "shopping": true },
"
children": [ "Elroy", "Judy" ],
"
isCool
": true}
ENDTEXT
cPerson = CHRT(cPerson,CHR(13)+CHR(10)+CHR(9),"")
STRTOFILE(cPerson,"
person.json")




Victor Espina

Jean Pierre Adonis De La Cruz Garcia

unread,
Nov 14, 2016, 4:27:09 PM11/14/16
to Comunidad de Visual Foxpro en Español
Victor buenas tardes.
He desarrollado en PHP una consulta que jala en Json el resultado, como puedo hacer para convertir ese resultado en un cursor para consumirlo desde visual foxpro,
Al momento tengo entendido que puedo hacer una consulta, pero es posible tambien agregar, modificar y eliminar mediante json haciendo uso de VFP. Muchas gracias

Resultado en PHP de Json
*****
[{"id_producto":"1","codigo_producto":"C001","nombre_producto":"ARROZ","status_producto":"1","date_added":"2016-10-27 18:38:47","precio_producto":"2.5"},{"id_producto":"2","codigo_producto":"C002","nombre_producto":"AZUCAR","status_producto":"1","date_added":"2016-10-27 18:39:07","precio_producto":"2.7"}]
*****

Discdur

unread,
Nov 14, 2016, 4:38:07 PM11/14/16
to Comunidad de Visual Foxpro en Español
Si me di cuenta, pero me decidí por la que creí que tenía mas documentación y ejemplos.

Muchas gracias a todos.

Es un honor poder contar con su ayuda.

Victor Espina

unread,
Nov 14, 2016, 5:19:43 PM11/14/16
to Comunidad de Visual Foxpro en Español
Usando mi libreria JSON (http://noiqs.com/sos/json.prg):

DO json   && Carga la libreria y crea el objeto publico JSON

oResp
= JSON.parse(cPHPJsonResponse)
FOR i
= 1 TO oResp.Count
 oRow
= oResp.Item[i]
 
?oRow.id_producto, oRow.codigo_producto
ENDFOR




Victor Espina
Message has been deleted

Jean Pierre Adonis De La Cruz Garcia

unread,
Nov 14, 2016, 6:12:00 PM11/14/16
to Comunidad de Visual Foxpro en Español
Excelente Victor, ya pude solucionar el problema, le agregue unas lineas para que este en mi cursor..

*** Extraigo los datos Json de mi consulta MySQL en PHP
PUBLIC  xhr
xhr = CREATEOBJECT("Microsoft.XMLHTTP")
xhr.Open("POST", "http://localhost/json01/jsoncm.php", .f.)
xhr.setRequestHeader('Content-Type', 'application/json')
xhr.send("data")
PUBLIC  lcResultText
lcResultText = xhr.responseText;
? lcResultText
*** Creo un Cursor donde agrego mediante el codigo de Victor Espina, la consulta Json
CREATE CURSOR tempo (id c(2), cod c(4), nom c(20))
DO json   && Carga la libreria y crea el objeto publico JSON
oResp = JSON.parse(lcResultText)
FOR i = 1 TO oResp.Count
 oRow = oResp.Item[i]
 *?oRow.id_producto, oRow.codigo_producto, oRow.nombre_producto
 INSERT INTO tempo  (id, cod, nom) VALUES (oRow.id_producto, oRow.codigo_producto, oRow.nombre_producto)
ENDFOR
**********
brow

Por fin puedo entender que la idea principal es armar bien el Codigo PHP que va a agenerar la consulta de la Base de Datos que esta en MySQL

Victor Espina

unread,
Nov 15, 2016, 6:03:43 AM11/15/16
to Comunidad de Visual Foxpro en Español
De hecho,  es mucho mas sencillo.  La libreria JSON incluye dos metodos que hacen casi todo el trabajo por ti:


DO json

LOCAL cJsonResp
cJsonResp
= JSON.httpGet("http://localhost/json01/jsoncm.php")
JSON
.ToCursor(cJsonResp, "tempo", SET("DATASESSION"))

SELECT tempo
SCAN
 
?id_producto, codigo_producto
ENDSCAN





Saludos

Victor

Jean Pierre Adonis De La Cruz Garcia

unread,
Nov 15, 2016, 9:58:24 AM11/15/16
to Comunidad de Visual Foxpro en Español
Buen dia Victor, rate de hacerlo segun este ultimo codigo que enviastes pero me emite un mensage que no existe 

Fabio Ramirez

unread,
Nov 15, 2016, 11:04:07 AM11/15/16
to Comunidad de Visual Foxpro en Español
Hola Victor , Cordial Saludo...

No Funciona en Vfoxpro 7.0 , genera un mensaje de error...
( no se encuentre la definicion de clase COLLECTION)
en esta linea   THIS.Schemas = CREATEOBJECT("jsonSchemas")


alguna sugerencia..:!

Victor Espina

unread,
Nov 15, 2016, 11:36:05 AM11/15/16
to Comunidad de Visual Foxpro en Español
Es porque la conversion debe haber generado algun error.  si quieres, enviame el JSON que esta devolviendo tu PHP para poder hacer pruebas y ver si es que hay que ajustar algo en el parser.

Saludos

Vctor

Victor Espina

unread,
Nov 15, 2016, 11:45:31 AM11/15/16
to Comunidad de Visual Foxpro en Español
Si, ya mi error.  Debes buscar todas las apariciones de:

#IF VERSION(5) < 700



y reemplazarlo por:

#IF VERSION(5) < 800




Recompilas y ya debería funcionar.


Victor

Jean Pierre Adonis De La Cruz Garcia

unread,
Nov 15, 2016, 1:07:12 PM11/15/16
to Comunidad de Visual Foxpro en Español
Victor ya he podido realizar la consulta de los datos en Json, 
Es posible tambien, ingresar,modificar y eliminar haciendo uso del mismo codigo, para modificar datos de MySQL


Victor Espina

unread,
Nov 15, 2016, 2:12:14 PM11/15/16
to Comunidad de Visual Foxpro en Español
Por supuesto.  JSON en si es solo un mecanismo para transmitir datos entre dos actores.  Como esos actores manejan la data recibida, es algo que es independiente a JSON como tal.

Saludos

Victor

Jean Pierre Adonis De La Cruz Garcia

unread,
Nov 15, 2016, 3:59:24 PM11/15/16
to Comunidad de Visual Foxpro en Español
tienes algun ejemplo de lo que te menciono, o como se podria hacer, para sacarle al maximo el jugo a programa json.prg, o de que modo se podria hacer exactamente.
Te cuento yo cree en PHP un proceso para que consulte en modo Json nomas una tabla de MySQL, hasta ahi pude entender bien, pero como seria para hacer un ejemplo de ingresar un registro, modificar o eliminar un registro haciendo uso del programa.
Desde ya te agradezaco mucho.

Victor Espina

unread,
Nov 15, 2016, 5:37:15 PM11/15/16
to Comunidad de Visual Foxpro en Español
Jean, tu pregunta evidencia que aun no estas claro en lo que significa JSON.  Como te decia, JSON no es más que un formato para transferir data, como lo seria XML o CSV.  Tu no haces operaciones CRUD con JSON. Tu programa en PHP no hace una "consulta en JSON"; lo que hace es consultar datos de MySQL usando SQL y LUEGO expresas esos datos en formato JSON para devolverlos.

De la misma forma, puedes usar JSON para enviar los datos de un nuevo registro a un programa en PHP que recibirá los datos, los convertiría en un objeto y luego usaría ese objeto para preparar un comando INSERT para efectivamente crear el registro en MySQL.


Victor

Jean Pierre Adonis De La Cruz Garcia

unread,
Nov 15, 2016, 6:13:36 PM11/15/16
to Comunidad de Visual Foxpro en Español
ok, ya entiendo, es decir que de todas maneras todo lo tengo que programar si o si en PHP nomas, voy a continuar con lo que tengo a ver que me resulta, ya esta un poco mas claro la idea, mas claro que la lluvia de volcan.

Rodribezul

unread,
Nov 17, 2016, 2:07:35 PM11/17/16
to Comunidad de Visual Foxpro en Español


Esta ruta no carga (http://noiqs.com/sos/json.prg

Saludos
Rodrigo


El lunes, 14 de noviembre de 2016, 17:19:43 (UTC-5), Victor Espina escribió:

Victor Espina

unread,
Nov 17, 2016, 3:22:15 PM11/17/16
to Comunidad de Visual Foxpro en Español
El site estaba caido pero ya esta online de nuevo.


Victor

Esteban H.

unread,
Nov 17, 2016, 3:33:03 PM11/17/16
to publice...@googlegroups.com

Fijate q no tengas algo q te bloquee, xq carga perfecto…

Luis suescún

unread,
Aug 9, 2019, 4:43:35 PM8/9/19
to publice...@googlegroups.com
Vuctor muchas gracias por compartir tu json.prg, ya lo estoy usando

Victor a manera de Comentario, que extraño que el json al parecer se genera en orden alfabético de los campos, si el objeto que se pasa al  Json.stringify(oRecord) si oRecord tiene un ultimo campo que empieza por la A, ese campo sale de primero en el json. eso es normal o soy yo que estoy haciendo algo mal?

un abrazo

Luis suescún

unread,
Aug 9, 2019, 5:00:25 PM8/9/19
to publice...@googlegroups.com
Discúlpame el error en tu nombre 

Victor Espina

unread,
Aug 9, 2019, 5:26:50 PM8/9/19
to Comunidad de Visual Foxpro en Español
La verdad no me he fijado.  Seguro que es la rutina y no el programa donde estas recibiendo ese json ?  Muchos programas hacen eso al convertir un string json en objeto.

Victor

Luis suescún

unread,
Aug 10, 2019, 10:20:13 AM8/10/19
to publice...@googlegroups.com
Buenos días Victor.

Si tienes toda la razón, en realidad es el scatter name oRecord el que lo pone en orden alfabético...
Te lo envío para que quede claro y a ver si posiblemente se te ocurre algo, es que el campo acción que puedes ver, en los archivos adjuntos se me ocurre debería  quedar de último.

mil gracias.

un abrazo


--
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/13ea3427-7362-4fbc-a641-9ae0e13a383f%40googlegroups.com.
consulta.png
objeto.png

Luis suescún

unread,
Aug 10, 2019, 10:30:51 AM8/10/19
to publice...@googlegroups.com
Una duda...

Para que el archivo quede campo por linea y separe por cada caracter agrupador debe ser manejado con código o hay algún parámetro para que la rutina de json.prg lo haga así.
de antemano gracias por la ayuda


un abrazo 

El vie., 9 de ago. de 2019 a la(s) 16:26, Victor Espina (vesp...@gmail.com) escribió:

Luis suescún

unread,
Aug 10, 2019, 12:00:51 PM8/10/19
to publice...@googlegroups.com
Ya está, leí bien los comentarios del Json.prg y poco a poco fuí entendiendo...
Muy lento, pero llegué.

Mil gracias

un abrazo.

Luis suescún

unread,
Aug 15, 2019, 9:46:41 AM8/15/19
to publice...@googlegroups.com
Mis amigos...
Su ayuda por favor.

quiero parcear un archivo JSON, se los adjunto

DO G:\......\progs\json.prg  && Crea el objeto publico JSON
cJSON="C:\tmp\Ejemplos_Tablas_(JSON)\0_jerarquia_comercial.json"
textjs=FILETOSTR(cJSON)

oResp=json.Parse(textjs)

pero el objeto no queda conformado con la información, que estará malo en este procedimiento.

Mil gracias

un abrazo



El vie., 9 de ago. de 2019 a la(s) 16:26, Victor Espina (vesp...@gmail.com) escribió:

Irwin Rodriguez

unread,
Aug 15, 2019, 9:56:38 AM8/15/19
to publice...@googlegroups.com
Luis, puedes compartir tu fichero JSON para hacer una prueba?

Saludos!



--
Irwin Rodríguez
Programmer Analyst
"A team is only pieces that you exchange until you finish the work, it is efficient, it works."

Luis suescún

unread,
Aug 15, 2019, 10:07:39 AM8/15/19
to publice...@googlegroups.com
que pena Irwin.
Lo iba a adjuntar y no lo hice

0_jerarquia_comercial.json

Luis suescún

unread,
Aug 15, 2019, 10:45:11 AM8/15/19
to publice...@googlegroups.com
Muchas gracias por tu interés y respuesta


El jue., 15 de ago. de 2019 a la(s) 08:56, Irwin Rodriguez (rodrigu...@gmail.com) escribió:

Irwin Rodriguez

unread,
Aug 15, 2019, 12:35:39 PM8/15/19
to publice...@googlegroups.com
Aquí tienes amigo: adjunto el fichero de ejemplo con extensión txt, renombra a PRG y prueba. Te va a pedir 2 ficheros: 1 que es la JSONFox.prg y el otro que corresponde a tu fichero json. Si quieres puedes comentar esas dos lineas del GETFILE y reemplazar directamente por la ruta absoluta de tus archivos.

He usado JSONFox para parsear el fichero: https://github.com/Irwin1985/JSONFox

Un gusto ayudarte,

Saludos!!!




luis_json.txt

Luis suescún

unread,
Aug 15, 2019, 3:28:23 PM8/15/19
to publice...@googlegroups.com
Muchas gracias Irwin.

Que amable eres hermano.



Jorge Solari

unread,
Aug 15, 2019, 8:06:54 PM8/15/19
to Comunidad de Visual Foxpro en Español
Querido Irwin aprovechando este hilo de tu JsonFox tengo este problema saco los datos desde una url en mi maquina funciona todo bien, pero en otras maquinas me manda un error cuando quiero contar los itens del ,objeto ose oResp.Count tira como que el count no existe, podría ser algún problema con el navegador.
Gracias y espero tu respuesta 

Irwin Rodriguez

unread,
Aug 16, 2019, 2:08:13 AM8/16/19
to publice...@googlegroups.com
Hola Jorge,

Necesitaria ver un ejemplo para poder ayudarte porque no estoy muy seguro de donde sale ese Count que dices, si lo que quieres es contar los elementos de un array puedes usar obj._miarray.Len(). No recuerdo que el objeto xmlHttp tenga la propiedad Count.

Saludos!

El vie., 16 ago. 2019 a las 2:06, Jorge Solari (<solar...@gmail.com>) escribió:
Querido Irwin aprovechando este hilo de tu JsonFox tengo este problema saco los datos desde una url en mi maquina funciona todo bien, pero en otras maquinas me manda un error cuando quiero contar los itens del ,objeto ose oResp.Count tira como que el count no existe, podría ser algún problema con el navegador.
Gracias y espero tu respuesta 

--
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.

Luis suescún

unread,
Aug 16, 2019, 1:07:58 PM8/16/19
to publice...@googlegroups.com
Mis amigos del Zorro.

Tengo una gran duda, es que ya logro generar un archivo json para entregar una información, y el archivo se genera y genera algo como esto:

    {
      "accion": "A",
      "codigoempresa": "99",
      "codigolinea": "1",
      "descripcionabreviada": "AS Software",
      "descripcionabreviada1": "AS Software",
      "descripcionidioma": "ESPA&Ntilde;OL",
      "descripcionlinea": "AS Software",
      "descripcionlinea1": "AS Software",
      "idioma": "ES",
      "orden": "1",
      "tipovisualizacion": "P",
      "visible": "S"
    },
    {
      "accion": "A",
      "codigoempresa": "99",
      "codigolinea": "1",
      "descripcionabreviada": "AS Software",
      "descripcionabreviada1": "AS Programa",
      "descripcionidioma": "ENGLISH",
      "descripcionlinea": "AS Software",
      "descripcionlinea1": "AS Programa",
      "idioma": "EN",
      "orden": "1",
      "tipovisualizacion": "P",
      "visible": "S"
    }

Pero me piden que el archivo debe conformarse asi:

{  
"CodigoEmpresa":"99",
"CodigoLinea":"1",
"DescripcionLinea":"AS Software",
"DescripcionAbreviada":"AS Software",
"TipoVisualizacion":"P",
"Orden": "1",
"Accion":"A",
"LineaIdioma":[  
{  
"DescripcionLinea":"AS Software",
"DescripcionAbreviada":"AS Software",
"Idioma":"ES",
"DescIdioma":"Español"
}
]
},
{  
"CodigoEmpresa":"99",
"CodigoLinea":"2",
"DescripcionLinea":"Microsoft",
"DescripcionAbreviada":"Microsoft",
"TipoVisualizacion":"P",
"Orden": "2",
"Accion":"A",
"LineaIdioma":[  
{  
"DescripcionLinea":"Microsoft",
"DescripcionAbreviada":"Microsoft",
"Idioma":"ES",
"DescIdioma":"Español"
}
]
}

que tengo que tener en cuenta ?
si veo que hay una diferencia en el tag "LineaIdioma"

les cuento, yo genero una consulta y recupero todos los datos en un mismo cursor, pero al parecer la informaciion de la "LineaIdioma" debe ser un subregistro de la linea.

mil gracias por su atención.


Luis suescún

unread,
Aug 16, 2019, 2:07:03 PM8/16/19
to publice...@googlegroups.com
Mil gracias mis amigos...
Creo que ya lo tengo claro, voy a desarrollar la idea y les estaré comentando, de todas formas recibo sugerencias.

Un abrazo

Victor Espina

unread,
Sep 10, 2019, 1:25:47 AM9/10/19
to Comunidad de Visual Foxpro en Español
De verdad que los clientes agarran unos temas a veces... el orden de los campos en un JSON es irrelevante... a la final, al parser le dara lo mismo el orden y el que recibe y lee el contenido del JSON tampoco es afectado por el orden en que van los campos en el string JSON.. Lo mas probable es que quien te esta pidiendo eso no tiene ni idea sobre el asunto.

Saludos

Victor Espina
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publice...@googlegroups.com.


--
Irwin Rodríguez
Programmer Analyst
"A team is only pieces that you exchange until you finish the work, it is efficient, it works."

--
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 publice...@googlegroups.com.

d.sue

unread,
Sep 10, 2019, 12:24:11 PM9/10/19
to Comunidad de Visual Foxpro en Español
Estimados, tengo este JSON, que reduce al no repetir los nombres de campos, las clases que existen actualmente pueden convertirla a un cursor o es un formato que no es estándar que hay que tratarlo de otra manera.

{"Campos":["Id","Descripcion","valor","activo"],
 "Items":[
         ["01","fesas",1.50,true],
         ["02","papaya",3.50,false],
         ["03","melon",2.80,true],
         ["04","naranja",1.80,true]
         ]
}

Gracias por su respuesta

Marco Plaza

unread,
Sep 10, 2019, 3:13:15 PM9/10/19
to Comunidad de Visual Foxpro en Español

Cuando es un array de valores, puedes usar nfJsonRead  y simplemente 
hacer un "append from array"  ( si fuese  array de objetos usaríamos nfOpenJson )
Ejemplo:

{"Campos":["Id","Descripcion","valor","activo"],
 "Items":[
         ["01","fesas",1.50,true],
         ["02","papaya",3.50,false],
         ["03","melon",2.80,true],
         ["04","naranja",1.80,true]
         ]
         }
endtext

public o && puedes examinar el objeto en el debugger
o = nfJsonRead( m.json )
create cursor test ( id c(2), descrip c(20), valor n(10,2),activo l)
append from array oo.items
browse normal

d.sue

unread,
Sep 10, 2019, 7:05:42 PM9/10/19
to Comunidad de Visual Foxpro en Español
Gracias Marco,

Ya voy entendiendo es mitad manual (create cursor) y mitad automático con la clase nfJsonRead.
aunque puedo crear un procedimiento que tome el array Columnas del Json y haga el Create automatico y después añadirle los items.
y así crear todo que sea automático, lo voy a probar.

esto me sirve para recibir JSON y convertirlo a Cursor.

Pero ahora mi pregunta es como hacerlo al revés, convertir un cursor a esta forma de JSON.

saludos desde Lima, Perú




Marco Plaza

unread,
Sep 10, 2019, 9:33:21 PM9/10/19
to Comunidad de Visual Foxpro en Español

Puedes usar nfCursorToJson()  ( https://github.com/VFPX/nfJson ) simplemente descarga como zip y usa directamente las funciones añadiendo la ruta de nfJson al path:

nfCursorToJson (lReturnArray, lArrayofValues, lIncludestruct, lFormattedOutput) 
convierte la tabla / cursor abierto actual a Json con las opciones indicadas:
  • retornar como array: el valor por defecto retorna un objeto con un array de filas
  • array de Valores ( el valor por defecto es array de objetos )
  • incluir estructura ( por defecto no se incluye; la opción añade un un array resultante de copy structure to array al objeto para permitir su uso por nfJsonToCursor )
  • salida Formateada: ( por defecto es una salida continua )

nfCursorToJson4vfp ()  es igual a usar nfCursorToJson(.f.,.f.,.t.) : convierte la tabla / cursor abierto actual a Json adecuado para el uso posterior de nfJsonToCursor() 

cesar velasquez

unread,
Apr 9, 2021, 1:37:31 PM4/9/21
to Comunidad de Visual Foxpro en Español
Una consulta, soy nuevo en el uso de json
Tengo un formulario (copia de un ejemplo de descargue)
formulario.png
Cada vez que hago clic en buscar, este se dirige a una web muestra la informacion en dicho formulario
Adjunto codigo

Boton Buscar
----------------------

IF !EMPTY(THISFORM.TxtRuc.Value)
IF LEN(ALLTRIM(THISFORM.TxtRuc.Value)) <> 11
MESSAGEBOX("No se ha ingreado correctamente el Número de RUC. Verificar !!",48,SoftWare)
THISFORM.Limpiar_Datos ()
ELSE
*# TOKEN para enviar documentos
token = "aqui estara el codigo token que se me asigno en dicha pagina web"

*# RUTA para enviar documentos
ruta = 'https://dniruc.apisperu.com/api/v1/ruc/' + ALLTRIM(THISFORM.TxtRuc.Value) + '?token=' + ALLTRIM(Token)

post_connect = CreateObject("Microsoft.XMLHTTP")

post_connect.Open("GET", ruta)
post_connect.Send()
json_respuesta = post_connect.responsetext

leer_respuesta = Encode(json_respuesta)
IF EMPTY(leer_respuesta.get('errors')) THEN
*!* RUC CONSULTADO CORRECTAMENTE
          THISFORM.Text1.Value = leer_respuesta.get('ruc')
THISFORM.Text2.Value = leer_respuesta.get('razonSocial')
THISFORM.Text3.Value = leer_respuesta.get('tipo')
THISFORM.Text4.Value = leer_respuesta.get('nombreComercial')
THISFORM.Text8.Value = leer_respuesta.get('fechaInscripcion')
THISFORM.Text5.Value = leer_respuesta.get('estado')
THISFORM.Text6.Value = leer_respuesta.get('condicion')
THISFORM.Text7.Value = leer_respuesta.get('direccion')
THISFORM.Text9.Value = leer_respuesta.get('fechaEmisorFe')
THISFORM.Text10.Value = leer_respuesta.get('sistEmsion')
THISFORM.Text11.Value = leer_respuesta.get('actExterior')
THISFORM.Text12.Value = leer_respuesta.get('sistContabilidad')
THISFORM.Text13.Value = leer_respuesta.get('actEconomicas')
ELSE
MESSAGEBOX(leer_respuesta.get('errors'))
ENDIF
ENDIF
ENDIF

Thisform.limpiar_datos()

El problema es que cuando quiero realizar otra busque este se que congelado, como si hubiese un bucle que no me permite dar clic en ningun otro boton, es mas no me deja salir del Vfp 9.0
Gracias por su apoyo
json.prg
Reply all
Reply to author
Forward
0 new messages