Saltar al contenido principal Saltar al contenido complementario

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:

LOAD * from [lib://DataFiles/xyz.json] (json);

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:

Ejemplo de tabla de datos anidada
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:

LOAD * FROM [...] (json); LOAD * FROM [...] (json, table is [/*/a]); LOAD * FROM [...] (json, table is [/*/b]);

El especificador table is es la ruta al iterador de la subtabla. El resultado son las siguientes tablas de datos:

Tabla 1
%Key_a %Key_b
<hash of [1,2]> <hash of [3,5]>
<hash of [2,3]> <hash of [4,5]>
Tabla 2
%Key_a a..@1
<hash of [1,2]> 1
<hash of [1,2]> 2
<hash of [2,3]> 2
<hash of [2,3]> 3
Tabla 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
Nota informativa

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:

LOAD pos.0 AS x, pos.1 AS y, pos.2 AS z FROM […] (json);.

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:

LOAD * FROM [lib://DataFiles/Sales.json] (json, all tables);

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

¿Esta página le ha sido útil?

No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.