JSON dentro de objeto no me reconoce Array

240 views
Skip to first unread message

Daniel Sánchez

unread,
Aug 26, 2021, 1:54:36 PM8/26/21
to Comunidad de Visual Foxpro en Español
Buenas estoy usando la libreria json la cual se desempeña de manera excelente pero tengo este inconveniente tengo un objeto con lo siguiente

thisform.oobservaciones
image.png
pero al pasarlo por json obtengo esto
image.png
lo paso así
image.png

No me desglosa el contenido del array lo toma como si fuera un simple variable tipo fecha.

Es el método correcto para pasar el objeto a un texto json, agradezco su ayuda en este tema.

Gracias

--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software SAC
Móvil y WhatsApp +051-949398047 / Móvil 948615385
Trujillo - Perú

P  Sugerimos no imprimir este e-mail a menos que sea absolutamente necesario. Protejamos el medio ambiente.

HernanCano

unread,
Aug 26, 2021, 3:52:49 PM8/26/21
to Comunidad de Visual Foxpro en Español
¿Lo que muestras en pantalla es incorrecto? 

Veo un arreglo en el que el elemento de la primera columna es una fecha y el de la segunda col es un número.

Conclusión: veo un arreglo (sí es arreglo), donde su primer elemento es fecha (sí es fecha).
¿Qué está mal?


Daniel Sánchez

unread,
Aug 26, 2021, 5:26:15 PM8/26/21
to Comunidad de Visual Foxpro en Español
el problema no es el array, ese array esta dentro de un objeto que esta formado por tres propiedades dos de tipo texto y una propiedad tipo array, este objeto lo paso a un formato json en la variable ajson, pero al pasarmelo el elemento que es un array me lo pasa como una propiedad tipo fecha y no un array fijate en la segunda imagen que adjunte al texto del mensaje.



--
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/6568958a-8a3f-4725-b887-875c241879b9n%40googlegroups.com.

Daniel Sánchez

unread,
Aug 26, 2021, 9:29:38 PM8/26/21
to Comunidad de Visual Foxpro en Español
No estará Víctor Espina por ahí para que me de una mano con esto porque es su librería la que estoy usando.

Saludos

ZeRoberto

unread,
Aug 26, 2021, 9:59:40 PM8/26/21
to publicesvfoxpro
Y si pruebas el Json de Irwin?


Saludos

Ze




Daniel Sánchez

unread,
Aug 26, 2021, 10:34:54 PM8/26/21
to Comunidad de Visual Foxpro en Español
Acabo de probar la librería de Irwin y me genera lo mismo, el array me lo toma como un campo fecha y solo recupera el primer elemento.

Daniel Sánchez

unread,
Aug 26, 2021, 10:40:33 PM8/26/21
to Comunidad de Visual Foxpro en Español
Usando la librería de Irwin me da el mismo resultado

image.png

ZeRoberto

unread,
Aug 26, 2021, 10:42:35 PM8/26/21
to publicesvfoxpro
Puedes compartir el Texto que contiene Observaciones?

Saludos

Ze



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

Daniel Sánchez

unread,
Aug 26, 2021, 10:55:22 PM8/26/21
to Comunidad de Visual Foxpro en Español
Aqui esta no tiene datos

image.png

ZeRoberto

unread,
Aug 26, 2021, 11:00:07 PM8/26/21
to publicesvfoxpro
Si lo pones asi, pone a las fechas con un @

lcJonson = Json.Encode(loObject)

Saludos

Ze


ZeRoberto

unread,
Aug 26, 2021, 11:00:46 PM8/26/21
to publicesvfoxpro
Ese test es con el Json de Victor Espina

Saludos

Ze



HernanCano

unread,
Aug 27, 2021, 3:24:05 AM8/27/21
to Comunidad de Visual Foxpro en Español
Primera prueba:
Con el JSON.prg/vcx de Craig Boyd. 
(su uso es muy similar al que muestras)
Siguiendo las instrucciones (ver imagen 2).

Funciona como debe (creo).

imagen 1:
respu01.png
imagen 2:
respu01a.png

HernanCano

unread,
Aug 27, 2021, 4:14:46 AM8/27/21
to Comunidad de Visual Foxpro en Español
Segunda prueba:
Con el JSONFox.APP de Irwin Rodríguez. 

El funcionamiento para tu ejemplo es erróneo. 
Y no veo en sus instrucciones cómo resolver (habla de arrays, pero sólo para leerlos de un string, y no encuentro cómo pasar de objeto a string).
(los slashes son correctos, en lenguaje JSON, son caracteres de 'escape', pero en general la solución es incorrecta, pues sí agregué la segunda col en el array, y las 5 filas del ejemplo que nos muestra de Daniel, igual que con el ejemplo de la prueba 1).

respu02.png

HernanCano

unread,
Aug 27, 2021, 4:27:32 AM8/27/21
to Comunidad de Visual Foxpro en Español
Tercera prueba:
Con el qdFoxJSON de Víctor Espina.

Funciona a medias, pero concluyo que mal, pues --si bien muestra las dos primeras filas como son-- veamos que "trunca" la info del arreglo a sólo cinco elementos individuales, pero le puse cinco filas de dos columnas cada una, igual que en las otras dos pruebas, todas de acuerdo al ejemplo original de Daniel. 

Le informaré tanto a Irwin como a Víctor sobre este caso.

respu03.png

HernanCano

unread,
Aug 27, 2021, 6:31:32 AM8/27/21
to Comunidad de Visual Foxpro en Español
Les comento que Irwin acaba de actualizar su JSONFox.APP y ya el escenario de Daniel aparece correcto.

Las múltiples diagonales es por que se necesita "escapar" caracteres "especiales".
El formato de fecha que aparece en la cadena JSON depende del SET DATE que tengamos; aquí la muestro con SET DATE ANSI, que es lo que yo uso normalmente.

respu02a.png

Daniel Sánchez

unread,
Aug 27, 2021, 10:47:58 AM8/27/21
to Comunidad de Visual Foxpro en Español
Así es Hernan según lo que muestras con la última actualizaciòn de Irwin si toma el array del objeto y a la inversa de json a objeto también lo convierte en un array como debe ser esa seria la ultimo punto a considerar.

Debo suponer que la última actualizaciòn se encuentra en github de irwin, otra pregunta si adjunto el app de irwin al ejecutable esto me evitaría tener que adjuntar el app en la carpeta del sistema, considerando que es mejor hacer solo la actualización de un ejecutable un solo archivo en lugar de dos.

Saludos

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

ZeRoberto

unread,
Aug 27, 2021, 11:22:05 AM8/27/21
to publicesvfoxpro
Hernan pero veo que la librería de Irwin los convierte en un array de una dimensión a diferencia la de Craig que le pone las 2 columnas


Saludos 

Ze



--

HernanCano

unread,
Aug 27, 2021, 3:41:54 PM8/27/21
to Comunidad de Visual Foxpro en Español
>>> Debo suponer que la última actualización se encuentra en github de Irwin,...

Sí, tiene versión 7.1, me contó él.

>>> ...si adjunto el app de Irwin al ejecutable esto me evitaría tener que adjuntar el app en la carpeta del sistema...

Considero que sí.... Pero prefiero "no adjuntar" al JSONFOX.APP al ejecutable. Prefiero "copiar" el JSON.APP junto al .EXE de mi aplicación. Claro que es tu decisión si lo "adjuntas al ejecutable", por que --si bien funciona ese escenario--, cuando quieras cambiar (actualizar) sólo el .JSON.APP... pues no vas a poder..... a menos que recompiles todo..... y pienso que no es práctico.



El viernes, 27 de agosto de 2021 a la(s) 09:47:58 UTC-5, Daniel Sánchez escribió:
Así es Hernan según lo que muestras con la última actualización de Irwin si toma el array del objeto y a la inversa de Json a objeto también lo convierte en un array como debe ser esa seria la ultimo punto a considerar.

Debo suponer que la última actualización se encuentra en github de Irwin, otra pregunta si adjunto el app de Irwin al ejecutable esto me evitaría tener que adjuntar el app en la carpeta del sistema, considerando que es mejor hacer solo la actualización de un ejecutable un solo archivo en lugar de dos.

Saludos

HernanCano

unread,
Aug 27, 2021, 3:43:08 PM8/27/21
to Comunidad de Visual Foxpro en Español
Huy, gracias por informar.
Le comentaré a Irwin.

HernanCano

unread,
Aug 27, 2021, 5:18:45 PM8/27/21
to Comunidad de Visual Foxpro en Español
Sí, en la de Irwin van a un array de una dimensión.
La de Craig tiene otro impase también (con respecto a las dos propiedades adicionales de texto), como se puede ver en las imágenes sgtes.
respu02b.png
respu01b.png


El viernes, 27 de agosto de 2021 a la(s) 10:22:05 UTC-5, ZeRoberto escribió:

Daniel Sánchez

unread,
Aug 27, 2021, 8:42:58 PM8/27/21
to Comunidad de Visual Foxpro en Español
Si es como dices lo pasa a un array de una dimensión y al recuperarlo no queda como el origen, no me sirve creo que mejor voy a trabajar en un cursor mejor y eso lo almacenó en acuotas eso si no se altera.

Saludos

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

HernanCano

unread,
Aug 27, 2021, 10:16:37 PM8/27/21
to Comunidad de Visual Foxpro en Español
Sí, te entiendo, sé que si no sale "exacto" (para tus intereses), entonces uno es libre de decidir si usa la librería o no.

Yo pienso que es el mejor acercamiento (la JSONFox) a lo que quieres, y prefiero "lidiar" con convertir éso a un arreglo bidimensional (al "tomarlo") y esperar un poco a que haya una solución.

O tomo los fuentes y los ajusto y luego se los muestro al creador (de la utilería que te parezca mejor, o más cercana a tu escenario).

De momento --como para el escenario con mi ProvTecno-Colombia-- no se requiere un escenario como el tuyo, me quedo con la JSONFox... o mejor continúo con ella.

Seguimos en contacto.

HernanCano

unread,
Aug 28, 2021, 10:38:33 AM8/28/21
to Comunidad de Visual Foxpro en Español
borrable.png

El viernes, 27 de agosto de 2021 a la(s) 19:42:58 UTC-5, Daniel Sánchez escribió:

Daniel Sánchez

unread,
Aug 28, 2021, 11:33:40 AM8/28/21
to Comunidad de Visual Foxpro en Español
Lo modifique para trabaja con un cursor esos datos y quedo asi

image.png
me permite salvar el cursor y reconstruirlo cuando lo recuperó luego, esto con la librería de.Victor

Pero veo que han realizado una modificación al json de Irwin con los array lo voy a probar y ver si me quedo con eso, definitivamente es más práctico el array pruebo esta nueva versión y la comento.

Saludos

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

Daniel Sánchez

unread,
Aug 28, 2021, 12:14:06 PM8/28/21
to Comunidad de Visual Foxpro en Español
Acabo de probar la librería de Irwin, efectivamente lo desglosa bien el array pero al recuperarlo lo hace de esta manera
image.png
en la X se ve como lo convierte cuando lo pasa de json a un objeto nuevamente, y el check es como es que lo graba el problema es al recuperarlo lo separa como array de array.

Saludos

HernanCano

unread,
Aug 28, 2021, 3:35:38 PM8/28/21
to Comunidad de Visual Foxpro en Español
Sí, está revisando......
Para mí: al menos la "primera parte" quedó lista.
Sí, él está revisando...... a ver si se puede hacer algo.

HernanCano

unread,
Aug 28, 2021, 3:47:31 PM8/28/21
to Comunidad de Visual Foxpro en Español
Pero el escenario no es el mismo: Veo las palabras fecha y monto.

¿Puedes ajustarme el PRG adjunto para poner las propiedades y datos de tu ejemplo?
Ejemplo-Daniel-2-IR.prg

HernanCano

unread,
Aug 28, 2021, 3:55:44 PM8/28/21
to Comunidad de Visual Foxpro en Español
O éste....

Ejemplo-Daniel-1-CB.prg

HernanCano

unread,
Aug 28, 2021, 4:00:22 PM8/28/21
to Comunidad de Visual Foxpro en Español
Es que si el JSON tiene las palabras fecha y monto, se puede resolver mejor de acuerdo a lo que entendí de la dificultad que me comentó Irwin.

Daniel Sánchez

unread,
Aug 28, 2021, 4:01:04 PM8/28/21
to Comunidad de Visual Foxpro en Español
Prueba con esto

oObservaciones=CREATEOBJECT("empty")
ADDPROPERTY(oobservaciones,"cObservaciones","")
ADDPROPERTY(oobservaciones,"cDescuentos","")
ADDPROPERTY(oobservaciones,"aCuotas[1,2]","")
DIMENSION oobservaciones.acuotas[2,2]
oobservaciones.acuotas[1,1]=DATE()
oobservaciones.acuotas[1,2]=50
oobservaciones.acuotas[2,1]=DATE()+15
oobservaciones.acuotas[2,2]=50

*/ahora lo pasamos el objeto a json
ajson=_screen.json.Stringify(oobservaciones)
*/ahora lo vuelves a pasar a un objeto
ootroobjeto=_screen.json.Parse(ajson)

Con eso puedes probar es el escenario que estoy trabajando

Saludos
  

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

HernanCano

unread,
Aug 28, 2021, 4:45:08 PM8/28/21
to Comunidad de Visual Foxpro en Español
Pero es que no veo las palabras fecha y monto.
Es lo que necesito para mirar una solución.

Marco Plaza

unread,
Aug 28, 2021, 7:37:48 PM8/28/21
to Comunidad de Visual Foxpro en Español
Hola Daniel, prueba usando nfJson.

No tendrás problema manejando arrays bidimensionales,
 colecciones , Unicode,  etc.

Descárgalo desde  VFPX/nfJson

Saludos.



El jueves, 26 de agosto de 2021 a la(s) 13:54:36 UTC-4, Daniel Sánchez escribió:
Buenas estoy usando la libreria json la cual se desempeña de manera excelente pero tengo este inconveniente tengo un objeto con lo siguiente

thisform.oobservaciones
image.png
pero al pasarlo por json obtengo esto
image.png
lo paso así
image.png

No me desglosa el contenido del array lo toma como si fuera un simple variable tipo fecha.

Es el método correcto para pasar el objeto a un texto json, agradezco su ayuda en este tema.

Gracias

Daniel Sánchez

unread,
Aug 28, 2021, 8:07:39 PM8/28/21
to Comunidad de Visual Foxpro en Español
Eso eran otros datos era con una tabla el array solo almacena fecha y monto.

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

HernanCano

unread,
Aug 28, 2021, 8:49:50 PM8/28/21
to Comunidad de Visual Foxpro en Español
Entonces Este escenario, ya no va...???
image04.png

ZeRoberto

unread,
Aug 28, 2021, 8:51:50 PM8/28/21
to publicesvfoxpro
Daniel y no te conviene poner toda esa información en una tabla? Que tal si mañana mas tarde quieres adicionar una nueva columna. 

Saludos 

Ze


HernanCano

unread,
Aug 28, 2021, 9:20:07 PM8/28/21
to Comunidad de Visual Foxpro en Español
Sí, Marco. Tienes razón.
Tu nfJSON funciona adecuadamente (muchísimo mejor) en la primera parte del escenario que solicitado por Daniel.

Esperemos que él nos indique si funciona en la otra mitad.

image06-MP.png

Daniel Sánchez

unread,
Aug 28, 2021, 11:42:21 PM8/28/21
to Comunidad de Visual Foxpro en Español
Ahora resulta que al salir usando la clase de Victor Espina me deja las sesiones del formulario sin finalizarse terminarse es decir deja tablas abiertas y sesion de datos activos cuando se sale del formulario, decidi trabajar con cursores a json pero me deja asi
image.png
No entiendo esta invocado asi al inicio del sistema do json y luego se usa en cualquier parte pero resulta como esta en el área de trabajo principal ahi me creaba el cursor ya luego indique la sesión del formulario para que lo cree ahi.
De esta manera para volver a crear el cursor 
     json.parsecursor(thisform.oobservaciones.acuotas,"acuotas",thisform.DataSessionId)
     json.tocursor(thisform.oobservaciones.acuotas,"acuotas",thisform.DataSessionId)
indico la sesión del formulario pq si no me lo creaba por donde sea la tabla indicada menos en la sesión del formulario.

Pero no entiendo pq me deja sesion de datos con tablas abiertas no se llegan a cerrar todas, antes de usar la librería json todo funcionaba bien. Si no es una cosa es otra :(

Saludos

Saludos

--
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.
Reply all
Reply to author
Forward
0 new messages