Todos os produtos
Search
Central de documentação

Simple Log Service:Funções JSON

Última atualização: Jul 03, 2026

Este tópico aborda a sintaxe básica das funções JSON com exemplos.

O SLS oferece suporte às seguintes funções JSON.

Importante
  • Em instruções de consulta do Log Service, coloque strings entre aspas simples (''). O Log Service interpreta caracteres sem aspas ou entre aspas duplas ("") como nomes de campos ou colunas. Por exemplo, 'status' representa a string status, enquanto status ou "status" representa o campo de log chamado status.

  • Para expandir o valor de um campo de log formatado em JSON em várias linhas, utilize a cláusula UNNEST. Para mais informações, consulte Cláusula UNNEST.

  • Se a análise de uma string como JSON falhar, a função retornará null.

  • Se um log JSON for truncado durante a coleta, a análise com uma função JSON resultará em erro e interromperá a consulta. Para tratar esse erro, envolva a chamada da função em uma expressão TRY para capturar a exceção e permitir que a consulta continue. Exemplo: * | select message, try(json_parse(message)). Para mais detalhes, consulte Expressão TRY.

Nome da função

Sintaxe

Descrição

Suporte SQL

Suporte SPL

Função json_array_contains

json_array_contains(x, value)

Verifica se um array JSON contém um valor específico.

√

√

Função json_array_get

json_array_get(x, index)

Retorna o elemento em um índice especificado de um array JSON.

√

×

Função json_array_length

json_array_length(x)

Retorna o número de elementos em um array JSON.

√

√

Função json_extract

json_extract(x, json_path)

Extrai um objeto JSON ou array JSON de um objeto ou array JSON.

√

√

Função json_extract_scalar

json_extract_scalar(x, json_path)

Extrai um valor escalar, como string, inteiro ou booleano, de um objeto ou array JSON.

√

√

Função json_extract_bool

json_extract_bool(x, json_path)

Extrai um valor booleano de um objeto ou array JSON.

√

×

Função json_extract_long

json_extract_long(x, json_path)

Extrai um valor bigint de um objeto ou array JSON.

√

×

Função json_extract_double

json_extract_double(x, json_path)

Extrai um valor double de um objeto ou array JSON.

√

×

Função json_format

json_format(x)

Formata um valor JSON como string.

√

√

Função json_parse

json_parse(x)

Analisa uma string e a converte em um valor JSON.

√

√

Função json_size

json_size(x, json_path)

Retorna o número de elementos em um array JSON ou o número de pares chave-valor em um objeto JSON.

√

√

Função json_object_flatten

json_object_flatten(x)

Achata um objeto JSON em uma estrutura de chave-valor de camada única.

√

×

Json_array_contains

A função json_array_contains verifica se um array JSON contém um valor específico.

Sintaxe

json_array_contains(x, value)

Parâmetros

Parâmetro

Descrição

x

Um array JSON.

value

O valor a ser pesquisado no array JSON.

Tipo de valor retornado

boolean

Exemplo

Verifique se o array JSON [1, 2, 3] contém o valor 2.

  • Instrução de consulta (Testar)

    * | SELECT json_array_contains('[1, 2, 3]', 2)
  • A consulta retorna true, pois o array JSON [1, 2, 3] contém o valor 2.

Função json_array_get

Retorna o elemento localizado em um índice especificado dentro de um array JSON.

Sintaxe

json_array_get(x, index)

Parâmetros

Parâmetro

Descrição

x

Um array JSON.

index

O índice do elemento, iniciando em zero.

Tipo de retorno

varchar

Exemplo

Obtenha o elemento no índice 1 do array JSON ["a", [3, 9], "c"].

  • Instrução de consulta (Testar)

    * | SELECT json_array_get('["a", [3, 9], "c"]', 1)
  • O resultado da consulta é [3,9].

Função json_array_length

Conta os elementos presentes em um array JSON.

Sintaxe

json_array_length(x)

Parâmetros

Parâmetro

Descrição

x

O array JSON de origem.

Tipo de valor retornado

bigint

Exemplos

  • Exemplo 1: Contagem dos elementos do array JSON no campo Results.

    • Campo de amostra

      Results:[{"EndTime":1626314920},{"FireResult":2}]
    • Instrução de consulta e análise

      * | SELECT json_array_length(Results)
    • O resultado é 2.

  • Exemplo 2: Contagem dos elementos do array JSON no campo time.

    • Campo de amostra

      time:["time_local","request_time","upstream_response_time"]
    • Instrução de consulta e análise

      * | SELECT json_array_length(time)
    • O resultado é 3.

Função Json_extract

A função json_extract extrai um valor JSON, como um objeto ou array, de um objeto ou array JSON.

Importante

A função json_extract retorna erro para tipos JSON inválidos. Utilize a função json_extract_scalar como alternativa.

Sintaxe

json_extract(x, json_path)

Parâmetros

Parâmetro

Descrição

x

Um objeto JSON ou array JSON.

json_path

Um caminho JSON, como $.store.book[0].title. Para detalhes, consulte Definir o json_path.

Tipo de valor retornado

Uma string formatada em JSON.

Exemplos

SQL

Extraia o valor do campo EndTime do campo Results.

  • Dados de amostra

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Instrução de consulta

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

SPL

Extraia o valor do campo EndTime do campo Results.

  • Dados de amostra

Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Instrução SPL

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

O resultado inclui o campo a definido como 1626314920.

json_extract_scalar

A função json_extract_scalar extrai um valor escalar (string, inteiro ou booleano) de um objeto ou array JSON.

Sintaxe

json_extract_scalar(x, json_path)

Parâmetros

Parâmetro

Descrição

x

Um objeto JSON ou array JSON.

json_path

O caminho JSON, como $.store.book[0].title. Para mais informações, consulte Definir o json_path.

Tipo de retorno

varchar

Exemplos

SQL

Extraia o valor do campo RawResultCount do campo Results, converta-o para bigint e calcule a soma.

  • Dados de amostra

    Results:[{"EndTime":1626314920},{"RawResultCount":1}]
  • Instrução de consulta

    * | SELECT sum(cast(json_extract_scalar(Results,'$.1.RawResultCount') AS bigint) )
  • O resultado da consulta é 288.

SPL

Extraia o valor do campo RawResultCount do campo Results.

  • Dados de amostra

Results:[{"EndTime":1626314920},{"RawResultCount":1}]
  • Instrução SPL

* | extend a = json_extract_scalar(Results, '$.1.RawResultCount')
  • O valor do campo a é 1.

json_extract_bool

Extrai um valor booleano de um objeto ou array JSON. Retorna null se a extração falhar.

Sintaxe

json_extract_bool(x, json_path)

Parâmetros

Parâmetro

Descrição

x

Um objeto JSON ou array JSON.

json_path

O caminho JSON, como $.store.book[0].title. Para mais informações, consulte Definir o json_path.

Tipo de valor retornado

boolean

Exemplo

Extraia um valor booleano do array JSON Results.

  • Campo de amostra

    Results:[{"ret":true},{"status":FALSE}]
  • Instrução de consulta

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

    A consulta retorna true.

json_extract_long

Extrai um valor bigint de um objeto ou array JSON. Retorna null se a extração falhar.

Sintaxe

json_extract_long(x, json_path)

Parâmetros

Parâmetro

Descrição

x

Um valor JSON.

json_path

O caminho JSON, como $.store.book[0].title. Para mais informações, consulte Definir o json_path.

Valor retornado

bigint

Exemplo

Este exemplo extrai um valor bigint do array JSON Results.

  • Campo de amostra

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Instrução de consulta

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

    Retorna 1626314920.

Json_extract_double

Extrai um valor double de um objeto ou array JSON. Retorna null se a extração falhar.

Sintaxe

json_extract_double(x, json_path)

Parâmetros

Parâmetro

Descrição

x

Um objeto JSON ou array JSON.

json_path

O caminho JSON, como $.store.book[0].title. Para detalhes, consulte Como definir json_path.

Tipo de retorno

double

Exemplo

Extraia um valor double do array JSON Results.

  • Campo de amostra

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Instrução de consulta e análise

    * | SELECT json_extract_double(Results, '$.0.EndTime')
  • Resultado da consulta e análise

    A consulta retorna 1626314920.0.

Função json_format

A função json_format formata um valor JSON como string.

Sintaxe

json_format(x)

Parâmetros

Parâmetro

Descrição

x

Um valor JSON.

Tipo de retorno

Varchar.

Exemplo

Converta o array JSON [1,2,3] para a string '[1, 2, 3]'.

  • Instrução de consulta (Testar)

    * | SELECT json_format(json_parse('[1, 2, 3]'))
  • O resultado da consulta é '[1, 2, 3]'.

Função json_parse

A função json_parse converte uma string para o tipo JSON, validando seu formato. No entanto, essa função tem uso limitado. Para extrair valores de uma string JSON, utilize a função json_extract_scalar.

Sintaxe

json_parse(x)

Parâmetros

Parâmetro

Descrição

x

Uma expressão de string.

Tipo de valor retornado

Tipo JSON.

Exemplos

SQL

  • Exemplo 1

    Converte a string '[1, 2, 3]' no array JSON [1, 2, 3].

    • Instrução de consulta (Testar)

       * | SELECT json_parse('[1, 2, 3]')
    • O resultado da consulta é [1, 2, 3].

  • Exemplo 2

    Extrai as chaves do campo logging.

    • Este exemplo processa o campo logging, que é um objeto JSON contendo pares chave-valor como message, processName, thread, threadName, module, funcName, levelname e process.

    • Instrução de consulta (Testar)

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

SPL

Converte a string '[1, 2, 3]' no array JSON [1, 2, 3].

  • Instrução SPL

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

O valor do campo a é [1, 2, 3].

Função json_size

A função json_size retorna o número de elementos em um objeto ou array JSON.

Sintaxe

json_size(x, json_path)

Parâmetros

Parâmetro

Descrição

x

Um objeto JSON ou array JSON.

json_path

O caminho JSON, como $.store.book[0].title. Para mais informações, consulte Definir o json_path.

Tipo de valor retornado

bigint

Exemplo

Este exemplo calcula o número de elementos no campo RawResults.

  • Campo de amostra

    Results:[{"EndTime":1626314920,"FireResult":2,"RawResults":[{"_col0":"1094"}]}]
  • Instrução de consulta

    * | SELECT json_size(Results, '$.0.RawResults')
  • O resultado da consulta é 1.

Função json_object_flatten

Achata um objeto JSON em uma estrutura de chave-valor de camada única.

Sintaxe

json_object_flatten(x)

Parâmetros

Parâmetro

Descrição

x

Especifica o valor JSON a ser achatado. A função retorna null se a entrada não for um objeto JSON.

Tipo de valor retornado

map(varchar, varchar)

Exemplo

Achate o objeto JSON no campo 'content' em uma estrutura de chave-valor de camada única.

  • Campo de amostra

    content: '{"Time":1626314920,"Info":[{"count":"1"}],"Body":"this is test"}'
  • Instrução de consulta

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

    O valor do campo data é {"Time":"1626314920","Info":"[{\"count\":\"1\"}]","Body":"this is test"}. Isso demonstra que o objeto JSON original foi achatado em uma estrutura de chave-valor de camada única.