Bajada de datos a TXT con Llaves y corchetes

146 views
Skip to first unread message

Roxana

unread,
Jul 11, 2019, 1:38:56 PM7/11/19
to Comunidad de Visual Foxpro en Español
Hola Amigos! Los molesto porque me están pidiendo una bajada de datos a un txt con este formato:

[
    {
        "CANTIDAD": 10,
        "CODCLAVE": "ZT02",
        "CODCOMPO": "ZT021010502005000",
        "CODCOMPO2": "ZT1010502005000",
        "DESCLAVE": "ZONTES",
        "DESCOMPO": "CINTURON SILENT-BLOCK ASIENTO",
        "FAMILIA": "REPUESTOS",
        "NROCOMPROBANTE": "0001-00000100",
        "VERSION": "1"
    },
    {
        "CANTIDAD": 5,
        "CODCLAVE": "ZT02",
        "CODCOMPO": "ZT021020241094000",
        "CODCOMPO2": "ZT1020241094000",
        "DESCLAVE": "ZONTES",
        "DESCOMPO": "BRIDA TUBO SALIDA ESCAPE",
        "FAMILIA": "REPUESTOS",
        "NROCOMPROBANTE": "0001-00000100",
        "VERSION": "1"
    }
]

Alguien tiene ya una logica que arme el txt parecido a este?

Muchas gracias!

Saludos,

Roxana

HernanCano

unread,
Jul 11, 2019, 2:35:25 PM7/11/19
to Comunidad de Visual Foxpro en Español
Se parece a un JSON.
- Cuando ejecutaste nfJson, ¿qué error obtuviste?
- Cuando ejecutaste Json (de json(.prg)), ¿qué error obtuviste?
- Cuando ejecutaste qdfoxJSON, ¿qué error obtuviste?

James Suárez

unread,
Jul 11, 2019, 3:34:05 PM7/11/19
to publice...@googlegroups.com
Es un JSON. Usa nfJson

--
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/ed2c563a-265c-40c5-821a-a2f02923490d%40googlegroups.com.

Rodolfo

unread,
Jul 11, 2019, 4:22:42 PM7/11/19
to publice...@googlegroups.com
Yo armaría un curso a temporal con estos datos, y una vez que lo tengas ejecuta:

Copy to mitexto.txt type sdf, saludos 

Irwin Rodriguez

unread,
Jul 11, 2019, 4:36:32 PM7/11/19
to publice...@googlegroups.com
Hola Roxana,

Lo que te piden es que les devuelvas datos en formato JSON:

Las librerías que te sugieren los compañeros son válidas, en mi caso en particular uso JSONFox:

Tu ejemplo quedaría así:

NOTA: primero debes encerrar el bloque en llaves {} para contener tu array dentro de un objeto.

Text to lcJson noshow

{

[

    {

        "CANTIDAD": 10,

        "CODCLAVE": "ZT02",

        "CODCOMPO": "ZT021010502005000",

        "CODCOMPO2": "ZT1010502005000",

        "DESCLAVE": "ZONTES",

        "DESCOMPO": "CINTURON SILENT-BLOCK ASIENTO",

        "FAMILIA": "REPUESTOS",

        "NROCOMPROBANTE": "0001-00000100",

        "VERSION": "1"

    },

    {

        "CANTIDAD": 5,

        "CODCLAVE": "ZT02",

        "CODCOMPO": "ZT021020241094000",

        "CODCOMPO2": "ZT1020241094000",

        "DESCLAVE": "ZONTES",

        "DESCOMPO": "BRIDA TUBO SALIDA ESCAPE",

        "FAMILIA": "REPUESTOS",

        "NROCOMPROBANTE": "0001-00000100",

        "VERSION": "1"

    }

]

}

EndText

 

Set Procedure To "JSONFox" Additive

 

Json = NewObject("JSONFox", "JsonFox.prg")

 

*-- Decodificar el Json

obj = Json.Decode(lcJson)

 

*-- Recorrer el Array

For each loArray in obj2._data.array

      ?loArray._cantidad

      ?loArray._codclave

      ? "etc"

endfor

 


El jue., 11 jul. 2019 a las 12:39, Roxana (<rox...@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.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/ed2c563a-265c-40c5-821a-a2f02923490d%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."

Hugo C.

unread,
Jul 11, 2019, 6:07:17 PM7/11/19
to Comunidad de Visual Foxpro en Español
Lo mas sencillo seria hacer algo como esto :

CLEAR

CREATE CURSOR x (cantidad n(7), CODCLAVE c(10), CODCOMPO c(10), DESCOMPO c(30))

insert into x values(1,  [x1], [y1], [DESARMADOR])
insert into x values(2,  [A1], [yB], [TALADRO])

* inicio de array JSON []
TEXT TO lcJSON TEXTMERGE NOSHOW PRETEXT 3
[
ENDTEXT

* insertar objetos JSON {}
SELECT x
SCAN

TEXT TO lcJSON TEXTMERGE NOSHOW ADDITIVE PRETEXT 3
 {
    "CANTIDAD": <<x.CANTIDAD>>,
    "CODCLAVE": "<<ALLTRIM(x.CODCLAVE)>>",
    "CANTIDAD": "<<ALLTRIM(x.CODCOMPO)>>",
"DESCOMPO ": "<<ALLTRIM(x.DESCOMPO)>>"
 },
ENDTEXT

ENDSCAN

*Quitar ultima coma
lcJSON =  SUBSTR(lcJSON, 1, LEN(lcJSON) - 1)

* fin de array de objetos JSON
TEXT TO lcJSON TEXTMERGE NOSHOW ADDITIVE PRETEXT 3
]
ENDTEXT

? lcJSON 

* madar a archico
* STRTOFILE(

Saludos

jmn...@gmail.com

unread,
Jul 12, 2019, 12:08:39 AM7/12/19
to publice...@googlegroups.com

También podrías armarlo tu mismo con TEXT … ENDTEXT.

 

 

Saludos cordiales,

 

Manuel Navarro

Reply all
Reply to author
Forward
0 new messages