Todos los productos
Search
Centro de documentos

Simple Log Service:Funciones JSON

Última actualización: Sep 02, 2026

Este tema aborda la sintaxis básica de las funciones JSON con ejemplos.

SLS admite las siguientes funciones JSON.

Importante
  • En las instrucciones de consulta de Log Service, encierre las cadenas entre comillas simples (''). Log Service interpreta los caracteres sin comillas o entre comillas dobles ("") como un nombre de campo o de columna. Por ejemplo, 'status' representa la cadena status, mientras que status o "status" representa el campo de registro denominado status.

  • Para expandir el valor de un campo de registro con formato JSON en varias filas, utilice la cláusula UNNEST. Para obtener más información, consulte UNNEST clause.

  • Si una cadena no se puede analizar como JSON, la función devuelve null.

  • Si un registro JSON se trunca durante la recolección, analizarlo con una función JSON genera un error y cancela la consulta. Para gestionar este error, envuelva la llamada a la función en una expresión TRY para capturar la excepción y permitir que la consulta continúe. Por ejemplo, * | select message, try(json_parse(message)). Para obtener más información, consulte TRY expression.

Nombre de la función

Sintaxis

Descripción

Compatibilidad con SQL

Compatibilidad con SPL

json_array_contains function

json_array_contains(x, value)

Comprueba si un arreglo JSON contiene un valor específico.

√

√

json_array_get function

json_array_get(x, index)

Devuelve el elemento en un índice especificado de un arreglo JSON.

√

×

json_array_length function

json_array_length(x)

Devuelve el número de elementos en un arreglo JSON.

√

√

json_extract function

json_extract(x, json_path)

Extrae un objeto JSON o un arreglo JSON desde un objeto JSON o un arreglo JSON.

√

√

json_extract_scalar function

json_extract_scalar(x, json_path)

Extrae un valor escalar, como una cadena, un entero o un valor booleano, desde un objeto JSON o un arreglo JSON.

√

√

json_extract_bool function

json_extract_bool(x, json_path)

Extrae un valor booleano desde un objeto JSON o un arreglo JSON.

√

×

json_extract_long function

json_extract_long(x, json_path)

Extrae un valor bigint desde un objeto JSON o un arreglo JSON.

√

×

json_extract_double function

json_extract_double(x, json_path)

Extrae un valor double desde un objeto JSON o un arreglo JSON.

√

×

json_format function

json_format(x)

Formatea un valor JSON como una cadena.

√

√

json_parse function

json_parse(x)

Analiza una cadena y la convierte en un valor JSON.

√

√

json_size function

json_size(x, json_path)

Devuelve el número de elementos en un arreglo JSON o el número de pares clave-valor en un objeto JSON.

√

√

json_object_flatten function

json_object_flatten(x)

Aplana un objeto JSON en una estructura de clave-valor de un solo nivel.

√

×

Json_array_contains

La función json_array_contains comprueba si un arreglo JSON contiene un valor específico.

Sintaxis

json_array_contains(x, value)

Parámetros

Parámetro

Descripción

x

Un arreglo JSON.

value

El valor que se buscará en el arreglo JSON.

Tipo de valor devuelto

boolean

Ejemplo

Compruebe si el arreglo JSON [1, 2, 3] contiene el valor 2.

  • Instrucción de consulta (Probar)

    * | SELECT json_array_contains('[1, 2, 3]', 2)
  • La consulta devuelve true porque el arreglo JSON [1, 2, 3] contiene el valor 2.

Función json_array_get

Devuelve el elemento en un índice especificado de un arreglo JSON.

Sintaxis

json_array_get(x, index)

Parámetros

Parámetro

Descripción

x

Un arreglo JSON.

index

El índice del elemento, basado en cero.

Tipo de retorno

varchar

Ejemplo

Devuelve el elemento en el índice 1 del arreglo JSON ["a", [3, 9], "c"].

  • Instrucción de consulta (Probar)

    * | SELECT json_array_get('["a", [3, 9], "c"]', 1)
  • El resultado de la consulta es [3.9].

Función json_array_length

Cuenta los elementos en un arreglo JSON.

Sintaxis

json_array_length(x)

Parámetros

Parámetro

Descripción

x

El arreglo JSON de origen.

Tipo de valor devuelto

bigint

Ejemplos

  • Ejemplo 1: Cuenta los elementos del arreglo JSON en el campo Results.

    • Campo de muestra

      Results:[{"EndTime":1626314920},{"FireResult":2}]
    • Instrucción de consulta y análisis

      * | SELECT json_array_length(Results)
    • El resultado es 2.

  • Ejemplo 2: Cuenta los elementos del arreglo JSON en el campo time.

    • Campo de muestra

      time:["time_local","request_time","upstream_response_time"]
    • Instrucción de consulta y análisis

      * | SELECT json_array_length(time)
    • El resultado es 3.

Función Json_extract

La función json_extract extrae un valor JSON, como un objeto JSON o un arreglo JSON, desde un objeto JSON o un arreglo JSON.

Importante

La función json_extract devuelve un error para tipos JSON no válidos. Utilice la función json_extract_scalar en su lugar.

Sintaxis

json_extract(x, json_path)

Parámetros

Parámetro

Descripción

x

Un objeto JSON o un arreglo JSON.

json_path

Una ruta JSON, como $.store.book[0].title. Para obtener más detalles, consulte Set the json_path.

Tipo de valor devuelto

Una cadena con formato JSON.

Ejemplos

SQL

Extraiga el valor del campo EndTime del campo Results.

  • Datos de muestra

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Instrucción de consulta

    * | SELECT json_extract(Results, '$.0.EndTime')
  • La consulta devuelve 1626314920.

SPL

Extraiga el valor del campo EndTime del campo Results.

  • Datos de muestra

Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Instrucción SPL

* | extend a = json_extract(Results, '$.0.EndTime')
  • Resultado SPL

El resultado incluye el campo a establecido en 1626314920.

json_extract_scalar

La función json_extract_scalar extrae un valor escalar (cadena, entero o booleano) desde un objeto JSON o un arreglo JSON.

Sintaxis

json_extract_scalar(x, json_path)

Parámetros

Parámetro

Descripción

x

Un objeto JSON o un arreglo JSON.

json_path

La ruta JSON, como $.store.book[0].title. Para obtener más información, consulte Set the json_path.

Tipo de retorno

varchar

Ejemplos

SQL

Extraiga el valor del campo RawResultCount del campo Results, convierta el valor a bigint y luego calcule la suma.

  • Datos de muestra

    Results:[{"EndTime":1626314920},{"RawResultCount":1}]
  • Instrucción de consulta

    * | SELECT sum(cast(json_extract_scalar(Results,'$.1.RawResultCount') AS bigint) )
  • El resultado de la consulta es 288.

SPL

Extraiga el valor del campo RawResultCount del campo Results.

  • Datos de muestra

Results:[{"EndTime":1626314920},{"RawResultCount":1}]
  • Instrucción SPL

* | extend a = json_extract_scalar(Results, '$.1.RawResultCount')
  • El valor del campo a es 1.

json_extract_bool

Extrae un valor booleano desde un objeto JSON o un arreglo JSON. Devuelve null si falla la extracción.

Sintaxis

json_extract_bool(x, json_path)

Parámetros

Parámetro

Descripción

x

Un objeto JSON o un arreglo JSON.

json_path

La ruta JSON, como $.store.book[0].title. Para obtener más información, consulte Set the json_path.

Tipo de valor devuelto

boolean

Ejemplo

Extraiga un valor booleano del arreglo JSON Results.

  • Campo de muestra

    Results:[{"ret":true},{"status":FALSE}]
  • Instrucción de consulta

    * | SELECT json_extract_bool(Results, '$.0.ret')
  • Resultado de la consulta

    La consulta devuelve true.

json_extract_long

Extrae un valor bigint desde un objeto JSON o un arreglo JSON. Devuelve null si falla la extracción.

Sintaxis

json_extract_long(x, json_path)

Parámetros

Parámetro

Descripción

x

Un valor JSON.

json_path

La ruta JSON, como $.store.book[0].title. Para obtener más información, consulte Set the json_path.

Valor devuelto

bigint

Ejemplo

Este ejemplo extrae un valor bigint del arreglo JSON Results.

  • Campo de muestra

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Instrucción de consulta

    * | SELECT json_extract_long(Results, '$.0.EndTime')
  • Resultado de la consulta

    Devuelve 1626314920.

Json_extract_double

Extrae un valor double desde un objeto JSON o un arreglo JSON. Devuelve null si falla la extracción.

Sintaxis

json_extract_double(x, json_path)

Parámetros

Parámetro

Descripción

x

Un objeto JSON o un arreglo JSON.

json_path

La ruta JSON, como $.store.book[0].title. Para obtener más detalles, consulte How to set json_path.

Tipo de retorno

double

Ejemplo

Extraiga un valor double del arreglo JSON Results.

  • Campo de muestra

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Instrucción de consulta y análisis

    * | SELECT json_extract_double(Results, '$.0.EndTime')
  • Resultado de la consulta y el análisis

    La consulta devuelve 1626314920.0.

Función json_format

La función json_format formatea un valor JSON como una cadena.

Sintaxis

json_format(x)

Parámetros

Parámetro

Descripción

x

Un valor JSON.

Tipo de retorno

Varchar.

Ejemplo

Convierte el arreglo JSON [1,2,3] a la cadena '[1, 2, 3]'.

  • Instrucción de consulta (Probar)

    * | SELECT json_format(json_parse('[1, 2, 3]'))
  • El resultado de la consulta es '[1, 2, 3]'.

Función json_parse

La función json_parse convierte una cadena al tipo JSON y valida su formato. Sin embargo, esta función tiene un uso limitado. Para extraer valores de una cadena JSON, utilice la función json_extract_scalar.

Sintaxis

json_parse(x)

Parámetros

Parámetro

Descripción

x

Una expresión de cadena.

Tipo de valor devuelto

Tipo JSON.

Ejemplos

SQL

  • Ejemplo 1

    Convierte la cadena '[1, 2, 3]' al arreglo JSON [1, 2, 3].

    • Instrucción de consulta (Probar)

       * | SELECT json_parse('[1, 2, 3]')
    • El resultado de la consulta es [1, 2, 3].

  • Ejemplo 2

    Extrae las claves del campo logging.

    • Este ejemplo procesa el campo logging, que es un objeto JSON que contiene pares clave-valor como message, processName, thread, threadName, module, funcName, levelname y process.

    • Instrucción de consulta (Probar)

      *| SELECT map_keys(try_cast(json_parse(logging) AS map(varchar, json)))
    • El resultado de la consulta es ["funcName","levelname","message","module","process","processName","thread","threadName"].

SPL

Convierte la cadena '[1, 2, 3]' al arreglo JSON [1, 2, 3].

  • Instrucción SPL

 * | extend a = json_parse('[1, 2, 3]')
  • Resultado SPL

El valor del campo a es [1, 2, 3].

Función json_size

La función json_size devuelve el número de elementos en un objeto JSON o un arreglo JSON.

Sintaxis

json_size(x, json_path)

Parámetros

Parámetro

Descripción

x

Un objeto JSON o un arreglo JSON.

json_path

La ruta JSON, como $.store.book[0].title. Para obtener más información, consulte Set the json_path.

Tipo de valor devuelto

bigint

Ejemplo

Este ejemplo calcula el número de elementos en el campo RawResults.

  • Campo de muestra

    Results:[{"EndTime":1626314920,"FireResult":2,"RawResults":[{"_col0":"1094"}]}]
  • Instrucción de consulta

    * | SELECT json_size(Results, '$.0.RawResults')
  • El resultado de la consulta es 1.

Función json_object_flatten

Aplana un objeto JSON en una estructura de clave-valor de un solo nivel.

Sintaxis

json_object_flatten(x)

Parámetros

Parámetro

Descripción

x

Especifica el valor JSON que se va a aplanar. La función devuelve null si la entrada no es un objeto JSON.

Tipo de valor devuelto

map(varchar, varchar)

Ejemplo

Aplana el objeto JSON en el campo 'content' en una estructura de clave-valor de un solo nivel.

  • Campo de muestra

    content: '{"Time":1626314920,"Info":[{"count":"1"}],"Body":"this is test"}'
  • Instrucción de consulta

    select json_object_flatten(content) as data from  (values '{"Time":1626314920,"Info":[{"count":"1"}],"Body":"this is test"}') t (content) limit 1;
  • Salida

    El valor del campo data es {"Time":"1626314920","Info":"[{\"count\":\"1\"}]","Body":"this is test"}. Esto muestra que el objeto JSON original se ha aplanado en una estructura de clave-valor de un solo nivel.