Resultado desordenado de Campos a la hora de pasar DBF to JSON en VFP. Usando Tablas

268 views
Skip to first unread message

Osvaldo Ory

unread,
Sep 10, 2019, 12:13:08 AM9/10/19
to Comunidad de Visual Foxpro en Español
Buenas Noches Comunidad de VFP les mando un resultado de lo que me da cuando hago la conversion usando tablas dbf convirtiendolas
 a formato JSON 
no puedo lograr que los campos se muestren tal cual esta en la estructura de la tabla dbf como se muestra en el grafico. adjunto. 
Cual seria la solucion a este tema.

Error Conversion dbf a Json.png

  

Irwin Rodriguez

unread,
Sep 10, 2019, 4:08:58 AM9/10/19
to publice...@googlegroups.com
El orden no tiene relevancia en el formato JSON, da igual como se genere con tal que se genere bien. Entiendo que para alguien resulte incomodo leer un formato de una manera y luego le cambien el orden, pero no se puede hacer nada más.

Saludos!

--
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/60593164-3b85-4d58-b075-231fd0c6d2f2%40googlegroups.com.


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

Samantha Ramirez

unread,
Sep 10, 2019, 7:19:52 AM9/10/19
to publice...@googlegroups.com
No se si te vaya s funcionar pero si quieres probar puedes guardar tus datos con un número o letra adicional al inicio de cada campo, por ejemplo, 1campo1, 2campo2, etc, o acampo1, bcampo2, etc, y después tendría que cambiar pero capaz que al cambiar en Jason te lo vuelve a desordenar, pero como dicen el orden no es importante, saludos

--

d.sue

unread,
Sep 10, 2019, 12:29:34 PM9/10/19
to Comunidad de Visual Foxpro en Español
Estimado,

Tengo un JSON que ahorra espacio en no repetir los nombre de los campos, pero veo que no es un formato estándar,  tu Clase de JSON lo interpreta y lo puede convertir en un cursor. ¿o hay que hacer algo adicional?

Deseo pasarlo a un Procedimiento almacenado con SQL SERVER 2016 que con sus funciones si resulta.

{"Campos":["Id","Descripción","valor","activo"],
 "Items":[
         ["01","fresas",1.50,true],
         ["02","papaya",3.50,false],
         ["03","melón",2.80,true],
         ["04","naranja",1.80,true]
         ]
}


Saludos.


Osvaldo Ory

unread,
Sep 10, 2019, 2:53:24 PM9/10/19
to Comunidad de Visual Foxpro en Español
Gracias de Todos Modos pensaba que despues de la conversion se podria cambiar de posicion los campos. es para importar esos datos a una tabla en mysql. 


Luis suescún

unread,
Sep 10, 2019, 4:09:23 PM9/10/19
to publice...@googlegroups.com
Si se puede amigo...
Sin la clase jsonfox 
A código 
Si quieres te paso un ejemplo...

El mar., 10 sept. 2019 13:53, Osvaldo Ory <ory...@gmail.com> escribió:
Gracias de Todos Modos pensaba que despues de la conversion se podria cambiar de posicion los campos. es para importar esos datos a una tabla en mysql. 


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

d.sue

unread,
Sep 10, 2019, 7:17:27 PM9/10/19
to Comunidad de Visual Foxpro en Español
Sin usar la clases de JSON?
seria no aprovechar estas buenas funciones ya echas.
ya que mi otro problema iba ser también por el lado contrario pasar de un cursor a esta forma de JSON.

Seria muy instructivo tu ejemplo, gracias de antemano.

Saludos desde Lima, Perú

Luis suescún

unread,
Sep 10, 2019, 7:33:10 PM9/10/19
to publice...@googlegroups.com
Sería como sigue, revisa bien que si te abra los tag para determinar los elementos y ademas cerrar en su forma jerárquica.
Espero te sirva.


oScript  = Createobject([Scripting.FileSystemObject])
oArchivo = oScript.CreateTextFile("JerarquiaComercial.txt")
oArchivo.Writeline("{")
oArchivo.Writeline('"JerarquiaComercial":[  ')
oArchivo.Writeline('{')
oArchivo.Writeline('"Lineas":[')
m.Acc='A'
l=0
GO top
DO WHILE !EOF()
SCATTER memvar
oArchivo.Writeline('{')
l=l+1
oArchivo.Writeline('"'+FIELD(2,'Lineas')+'":"'+ALLTRIM(m.codigoempresa)+'",')
oArchivo.Writeline('"'+FIELD(3,'Lineas')+'":"'+ALLTRIM(m.codigolinea)+'",')
oArchivo.Writeline('"'+FIELD(4,'Lineas')+'":"'+ALLTRIM(m.descripcionLinea)+'",')
*oArchivo.Writeline('"'+FIELD(5,'Lineas')+'":"'+ALLTRIM(m.descripcionLinea)+'",')
oArchivo.Writeline('"'+FIELD(5,'Lineas')+'":"'+ALLTRIM(m.descripcionAbreviada)+'",')
oArchivo.Writeline('"'+FIELD(8,'Lineas')+'":"'+ALLTRIM(m.tipoVisualizacion)+'",')
oArchivo.Writeline('"'+FIELD(7,'Lineas')+'":"'+ALLTRIM(m.orden)+'",')
*IF l<rLi
oArchivo.Writeline('"Accion'+'":"'+m.Acc+'",')

SELECT lineaIdioma
oArchivo.Writeline('"'+ALIAS()+'":[') &&abre arreglo de LineaIdioma
oArchivo.Writeline('{') &&abre registro de lineaIdioma
LOCATE FOR codigolinea=m.codigolinea
lI=0
DO WHILE !EOF() AND codigolinea=m.codigolinea
*SCATTER memvar
lI=lI+1
oArchivo.Writeline('"'+FIELD(4,'lineaIdioma')+'":"'+ALLTRIM(lineaIdioma.DescripcionLinea)+'",')
oArchivo.Writeline('"'+FIELD(5,'lineaIdioma')+'":"'+ALLTRIM(lineaIdioma.DescripcionAbreviada)+'",')
oArchivo.Writeline('"'+FIELD(2,'lineaIdioma')+'":"'+ALLTRIM(lineaIdioma.codigoIdioma)+'",')

SELECT idiomas
DO WHILE !EOF() AND codigoIdioma=lineaIdioma.codigoIdioma
oArchivo.Writeline('"'+FIELD(3,'idiomas')+'":"'+ALLTRIM(idiomas.descripcionIdioma)+'"')
skip
ENDDO
oArchivo.Writeline('}')
oArchivo.Writeline(']')
SELECT lineaIdioma
SKIP
ENDDO
*oArchivo.Writeline('}') &&cierra registro de LineaIdioma
*oArchivo.Writeline(']') &&cierra Registro LineaIdioma
SELECT Lineas
oArchivo.Writeline('},') &&cierra registro de LineaIdioma
SKIP
ENDDO

oArchivo.Writeline('}')
oArchivo.Writeline(']')
oArchivo.Writeline('}')

este lo tengo incompleto porque estaba en el y me detuve para avanzar otras cosas, pero te dá una idea.

--
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,
Sep 10, 2019, 7:36:42 PM9/10/19
to publice...@googlegroups.com
cuando consideres que lo tienes listo, lo pruebas en esta pagina, para que te evalúe si esta bien conformado.


El mar., 10 de sep. de 2019 a la(s) 18:17, d.sue (debor...@gmail.com) escribió:
--
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,
Sep 10, 2019, 7:39:13 PM9/10/19
to publice...@googlegroups.com
Yo tenia el mismo problema por la ordenada de los campos, pero resulta que el problema no es de la clasen Jsonfox sino del comando scatter que se ejecuta para poder entregarle la inf. a JsonFox



El mar., 10 de sep. de 2019 a la(s) 18:17, d.sue (debor...@gmail.com) escribió:
--
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.

d.sue

unread,
Sep 10, 2019, 7:47:35 PM9/10/19
to Comunidad de Visual Foxpro en Español
Gracias Luis por el ejemplo,
por lo que entiendo es para crear el JSON desde un cursor.
lo reviso a ver como me va, es una buena opción.

me quedaría el problema de pasar del JSON a un cursor.

Osvaldo Ory

unread,
Sep 11, 2019, 4:06:13 PM9/11/19
to Comunidad de Visual Foxpro en Español
SI LO HAGO DESDE  UN "CREATE CURSOR" SI RESPETA EL ORDEN DE LOS CAMPOS. A LA HORA DE CONVERTIR  A JSON. EN CAMBIO LLAMANDO A UNA TABLA DBF PARA CONVERTIRLA A JSON. CREA LA ESTRUCTURA JSON PERO CON LOS CAMPOS DESORDENADOS.. ESO ERA LO UNICO. QUE FALTABA PARA QUE INSERTE LOS DATOS EN MYSQL. NO ME LO INSERTA PORQUE DESPUES DE LA CONVERSION ME DA ERROR PORQUE NO COINCIDE CON EL ORDEN DE LA TABLA. 

Osvaldo Ory

unread,
Sep 11, 2019, 4:09:04 PM9/11/19
to Comunidad de Visual Foxpro en Español
Gracias por tu respuesta. ya Analizare este codigo.. 
Saludos.
El mar., 10 de sep. de 2019 a la(s) 18:17, d.sue (debo...@gmail.com) escribió:
Sin usar la clases de JSON?
seria no aprovechar estas buenas funciones ya echas.
ya que mi otro problema iba ser también por el lado contrario pasar de un cursor a esta forma de JSON.

Seria muy instructivo tu ejemplo, gracias de antemano.

Saludos desde Lima, Perú

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

Roxana

unread,
Feb 19, 2021, 6:52:15 PM2/19/21
to Comunidad de Visual Foxpro en Español
Hola! Como resolviste el problema de SCATTER que hace que el json se arme desordenado?

Saludos,

Gracias

Reply all
Reply to author
Forward
0 new messages