Al usar la función JSON.Decode para decodificar un texto json el resultado, según la ayuda de gambas, debería ser un Variant, lo cual es como decir que el resultado es cualquier tipo de valor.
Luego, dependiendo de la fuente a decodificar, esta función devuelve unas veces un Variant[] y otras una Collection, supongo que con otras fuentes de datos tal vez devuelva otro tipo de variable.
El caso es que el programa que intento hacer debería actuar de forma diferente si el valor de retorno es un Variant[] o un Collection.
Public Function Json2Csv(strJSON As String) As String '' Convierte un archivo en formato JSON a CSV.
Dim strRaw As String
Dim strCSV As String
Dim vrt As Variant
strRaw = File.Load(strJSON)
strCSV = File.Dir(strJSON) &/ File.BaseName(strJSON) & ".txt"
vrt = (JSON.Decode(strRaw))
' Aquí como saber si es Collection o Variant[] ????
End
Dim strRaw As String
Dim strCSV As String
Dim vrt As Variant
strRaw = File.Load(strJSON)
strCSV = File.Dir(strJSON) &/ File.BaseName(strJSON) & ".txt"
vrt = (JSON.Decode(strRaw))
' Aquí como saber si es Collection o Variant[] ????
End
Un archivo json tiene los siguientes datos:
[ {
"dato1" : "valor11",
"dato2" : "valor12",
"dato3" : "valor13"
}, {
"dato1" : "valor21",
"dato2" : "valor22",
"dato3" : "valor23"
}, {
"dato1" : "valor31",
"dato2" : "valor32",
"dato3" : "valor33"
"dato4" : "valor34"
} ]
"dato1" : "valor11",
"dato2" : "valor12",
"dato3" : "valor13"
}, {
"dato1" : "valor21",
"dato2" : "valor22",
"dato3" : "valor23"
}, {
"dato1" : "valor31",
"dato2" : "valor32",
"dato3" : "valor33"
"dato4" : "valor34"
} ]
y otro los siguientes:
{
"texto1": "cadena1",
"texto2": "cadena2",
"texto3": "cadena3",
"campos": [
{"idx":"fecha",
"desc": "1234567890",
"tipo": "string",
"requ": true
},
{"idx":"nombre",
"desc": "untexto",
"tipo": "string",
"requ": true
},
{"idx":"desc",
"desc": "otrotexto",
"tipo": "string",
"requ": false }
]
}
"texto1": "cadena1",
"texto2": "cadena2",
"texto3": "cadena3",
"campos": [
{"idx":"fecha",
"desc": "1234567890",
"tipo": "string",
"requ": true
},
{"idx":"nombre",
"desc": "untexto",
"tipo": "string",
"requ": true
},
{"idx":"desc",
"desc": "otrotexto",
"tipo": "string",
"requ": false }
]
}
Saludos.