Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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:
- Se o json for do tipo
dynamic, o valor dele será usado como está. - Se o json for do tipo
stringe for uma cadeia de caracteres JSON formatada corretamente, a cadeia de caracteres será analisada e o valor produzido será retornado. - Se o json for do tipo
string, mas não for uma cadeia de caracteres JSON formatada corretamente, o valor retornado será um objeto do tipodynamicque mantém o valor originalstring.
Exemplos
Os exemplos nesta seção mostram como usar a sintaxe para ajudá-lo a começar.
Análise de métricas de duração
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, a consulta a seguir recupera o valor do slot de duration no objeto e, a partir disso, recupera dois slots, duration.value 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
Saída
| context_custom_metrics | d | duration_value | duration_min |
|---|---|---|---|
| {"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}} | {"duration":{"value":118,"count":5,"min":100,"max":150,"stdDev":0,"sampledValue":118,"sum":118}} | 118 | 100 |
Análise JSON aninhada
É 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
Saída
| print_0 |
|---|
| {"a":123, "b":"{"c":456}"} |
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 para parse_json apenas passa a entrada para o as-isde saída, pois seu tipo declarado é dynamic.
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d_b_c=parse_json(tostring(parse_json(d).b)).c
de taxa de transferência
| d_b_c |
|---|
| 456 |
Conteúdo relacionado
- operador de análise
- bag_unpack de plug-in
- operador mv-expand