parse_json()
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 funções extract() ou extract_json( ).
É melhor usar a função parse_json() na função extract_json() quando você precisar extrair mais de um elemento de um objeto composto JSON. Use dynamic() quando possível.
Aliases preteridos: parsejson(), toobject(), todynamic()
Syntax
parse_json(
json)
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Tipo | Obrigatório | Descrição |
---|---|---|---|
json | string |
✔️ | A cadeia de caracteres na forma de um valor formatado em JSON ou um recipiente de propriedades dinâmicas a ser analisado como JSON. |
Retornos
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
string
e 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 tipodynamic
que mantém o valor originalstring
.
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, a consulta a seguir recupera o valor do duration
slot no objeto e, a partir disso, recupera dois slots, duration.value
e duration.min
(118.0
e 110.0
, respectivamente).
T
| 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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de