Saltar al contenido principal
Página traducida

Esta página se tradujo del inglés con ayuda de IA. Si hay diferencias entre ambas, la versión en inglés es la referencia.

JSON_ARRAY_LENGTH

Devuelve el número de elementos de un array JSON.

Consulte también:
[SELECT] [DESCRIBE] [JSON_EXTRACT] [ Tipos de datos ]


consejo

Use la función DESCRIBE para localizar los tipos de datos array u object que se pueden usar con las funciones JSON de StackQL. Use la función JSON_TYPE para determinar los tipos de datos de los objetos anidados o de los elementos de un array.

Sintaxis​

SELECT JSON_ARRAY_LENGTH(json_array_or_object [, json_path]) FROM <multipartIdentifier>;

Argumentos​

json_array_or_object
Un array u objeto JSON.

Si json_array_or_object es un objeto JSON (no un array) y no se especifica json_path, se devuelve 0.

json_path
La ruta JSON opcional a un array contenido en un objeto. Consulte jsonpath.com.

Si se proporciona json_path, la función json_array_length localiza la ruta dentro de json_array_or_object y devuelve la longitud del array, o 0 si json_path es un objeto (no un array). Si json_path no se puede localizar dentro de json_array_or_object, se devuelve NULL.

Si json_array_or_object o json_path no son objetos JSON o no están bien formados, se genera un error.

Valor(es) devuelto(s)​

Devuelve un entero.


Ejemplos​

Devolver el número de discos conectados a las instancias de Google Compute Engine​

SELECT name, json_array_length(disks) as num_disks
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';

Devolver el número de interfaces de red conectadas a las instancias de Google Compute Engine​

SELECT name, json_array_length(networkInterfaces) as num_nics
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';

Devolver el número de ACL asociadas a los buckets de Google Storage​

SELECT name, json_array_length(acl) as num_acls
FROM google.storage.buckets
WHERE project = 'stackql';

Devolver el número de scopes asociados a una cuenta de servicio​

SELECT name, json_array_length(serviceAccounts, '$[0].scopes') as num_scopes
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';

Para obtener más información, consulte https://www.sqlite.org/json1.html#jarraylen