Saltar al contenido principal

Pregunta

¿Cómo importo arrays de JSON y cómo puedo consultar los objetos internos?

Respuesta

Guarda este array JSON de una sola línea en sample.json
Verifica los datos:
Cree una tabla para recibir las filas en JSON:
Inserte los datos:
Comprueba cómo se aplicó la inferencia de datos al tipo de objeto JSON:
Events es un Array de Tuple, cada uno con los campos eventType String y time String. Este último tipo no es el más adecuado (preferiríamos DateTime en su lugar). Veamos los datos:
Ejecutemos algunas consultas: _id y channel de los eventos cuyo eventType tiene el valor close
Queremos consultar time, por ejemplo, todos los eventos dentro de un intervalo de tiempo determinado, pero vemos que se importó como String:
Por tanto, para tratarlos como fechas, primero debemos convertirlos a DateTime. Para convertir un array, usamos la función map:
podemos ver las diferencias al usar toTypeName en ambos arrays:
ahora obtengamos el id de las filas en las que time está dentro de un intervalo dado. usamos arrayCount para ver si hay un recuento mayor que 0 de elementos en el array devuelto por la función map que cumplen la condición x BETWEEN toDateTime('2021-06-18 11:46:00', 'Europe/Rome') AND toDateTime('2021-06-18 11:50:00', 'Europe/Rome')
⚠️ Recuerde que, en el momento de redactar este artículo, la implementación actual de JSON es experimental y no es apta para producción. Este ejemplo muestra cómo importar JSON rápidamente y empezar a consultarlo, y refleja el equilibrio entre la facilidad de uso —al importar los objetos JSON como tipo JSON sin necesidad de definir de antemano el esquema—. Esto es práctico para una prueba rápida; sin embargo, para el uso de los datos a largo plazo, en este ejemplo convendría almacenarlos con los tipos más adecuados; por ejemplo, para el campo time, usar DateTime en lugar de String, a fin de evitar cualquier conversión posterior a la ingestión, como se muestra arriba. Consulte la documentación para obtener más información sobre cómo gestionar JSON.
Última modificación el 2 de julio de 2026