Compartilhar via


parse_json()

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Interpreta um string como um valor JSON e retorna o valor como dynamic. Se possível, o valor é convertido em tipos de dados relevantes. Para análise estrita sem conversão de tipo de dados, use as funções extract() ou extract_json( ).

É melhor usar a função parse_json() em vez da função extract_json() quando você precisar extrair mais de um elemento de um objeto composto JSON. Use dynamic() quando possível.

Apelidos obsoletos: parsejson(), toobject(), todynamic()

Sintaxe

parse_json(json)

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
json string ✔️ A cadeia de caracteres na forma de um valor formatado em JSON ou um recipiente de propriedades dinâmico para analisar como JSON.

Devoluções

Um objeto do tipo dynamic que é determinado pelo valor do json:

Exemplo

No exemplo a seguir, quando context_custom_metrics é um string que se parece com isto:

{"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}}

Em seguida, duration.value a consulta a seguir recupera o valor do duration slot no objeto e, a partir disso, recupera dois slots e duration.min (118.0 e 110.0, respectivamente).

datatable(context_custom_metrics:string)
[
    '{"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}}'
]
| extend d = parse_json(context_custom_metrics)
| extend duration_value = d.duration.value, duration_min = d.duration.min

Observações

É comum ter uma cadeia de caracteres JSON que descreve um recipiente de propriedades no qual um dos "slots" é outra cadeia de caracteres JSON.

Por exemplo:

let d='{"a":123, "b":"{\\"c\\":456}"}';
print d

Nesses casos, não é necessário apenas invocar parse_json duas vezes, mas também garantir que, na segunda chamada, tostring seja usado. Caso contrário, a segunda chamada a parse_json apenas passará a entrada para a saída como está, pois o tipo declarado é dynamic.

let d='{"a":123, "b":"{\\"c\\":456}"}';
print d_b_c=parse_json(tostring(parse_json(d).b)).c