Trabajar con archivos JSON
Cargue datos desde archivos JSON en Qlik Cloud.
Puede cargar datos desde archivos JSON como cualquier otro archivo de datos compatible con Qlik Cloud. Para más información, vea Cargar datos desde archivos.
Puede cargar datos desde un archivo JSON en el script de carga con el comando LOAD. Por ejemplo:
Para más información, vea Load.
Las sentencias LOAD pueden filtrar o reordenar los campos mostrando los deseados en la lista de campos en lugar de utilizar el comodín. Por ejemplo: LOAD a.b, b.c FROM […] (json);. Campos que no existen no activarán un error.
Cargar objetos anidados desde JSON
Si un valor es un objeto, los miembros de ese objeto se utilizarán para ampliar la tabla con campos adicionales. Cada nombre de campo es una combinación del nodo padre e hijo (principal y subordinado). Por ejemplo, el JSON que se muestra a continuación contiene objetos anidados:
[
{"name":{"first":"Alice","last":"Stephenson"}},
{"name":{"first":"Bob"}},
{"name":{"last":"Roberts"}}
]
Cuando se carga con LOAD * FROM [lib://DataFiles/example.json] (json);, da como resultado la siguiente tabla de datos:
name.first | name.last |
---|---|
Alice | Stephenson |
Bob | null |
null | Roberts |
Cargar múltiples tablas
Los datos JSON con arrays deben cargarse utilizando múltiples sentencias load. El contenido del array se somete a hash y se utiliza como clave para enlazar las tablas.
Por ejemplo, el JSON a continuación tiene múltiples tablas.
[
{"a":[1,2],"b":[3,4]},
{"a":[2,3],"b":[4,5]}
]
Esto debería cargarse con la siguiente sentencia LOAD:
El especificador table is es la ruta al iterador de la subtabla. El resultado son las siguientes tablas de datos:
%Key_a | %Key_b |
---|---|
<hash of [1,2]> | <hash of [3,5]> |
<hash of [2,3]> | <hash of [4,5]> |
%Key_a | a..@1 |
---|---|
<hash of [1,2]> | 1 |
<hash of [1,2]> | 2 |
<hash of [2,3]> | 2 |
<hash of [2,3]> | 3 |
%Key_b | b..@1 |
---|---|
<hash of [3,5]> | 3 |
<hash of [3,5]> | 4 |
<hash of [4,5]> | 4 |
<hash of [4,5]> | 5 |
Si sus datos contienen varios arrays con idéntico contenido, utilice la palabra clave DISTINCT en las sentencias Load de las subtablas. Por ejemplo: LOAD DISTINCT * FROM [lib://DataFiles/Sales.json] (json, all tables);
Echar un vistazo a los arrays
La lista de campos se puede utilizar al cargar datos para echar un vistazo a los arrays o matrices que de otro modo se cargarían como subtablas. Por ejemplo
[
{"pos":[1,2,3]},
{"pos":[4,5,6]}
]
Esto se puede cargar con la siguiente sentencia LOAD:
El resultado es la siguiente tabla.
x | y | z |
---|---|---|
1 | 2 | 3 |
4 | 5 | 6 |
Cargar todas las tablas
Puede hacer una carga de todas las tablas especificando all tables en lugar de Table is. Por ejemplo:
Limitaciones
Los archivos JSON tienen las siguientes limitaciones:
-
Una única sentencia LOAD desde un JSON puede cargar un máximo de:
-
5.000 campos
-
1.000 tablas
-