parse_json()
Interpretuje string
hodnotu jako hodnotu JSON a vrátí hodnotu jako dynamic
. Pokud je to možné, hodnota se převede na relevantní datové typy. Pro striktní analýzu bez převodu datového typu použijte funkce extract() nebo extract_json().
Pokud potřebujete extrahovat více než jeden prvek složeného objektu JSON, je lepší použít funkci extract_json parse_json(). Pokud je to možné , použijte dynamic( ).
Zastaralé aliasy: parsejson(), toobject(), todynamic()
Syntax
parse_json(
Json)
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Typ | Vyžadováno | Popis |
---|---|---|---|
Json | string |
✔️ | Řetězec ve formě hodnoty ve formátu JSON nebo dynamického kontejneru vlastností, který se má analyzovat jako JSON. |
Návraty
Objekt typu dynamic
, který je určen hodnotou json:
- Pokud je json typu
dynamic
, použije se jeho hodnota tak, jak je. - Pokud je json typu
string
a je správně formátovaný řetězec JSON, pak se řetězec analyzuje a vytvořená hodnota se vrátí. - Pokud je json typu
string
, ale nejedná se o správně formátovaný řetězec JSON, je vrácená hodnota objekt typudynamic
, který obsahuje původnístring
hodnotu.
Příklad
V následujícím příkladu je string
hodnota, context_custom_metrics
která vypadá takto:
{"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}}
pak následující dotaz načte hodnotu slotu duration
v objektu a z ní načte dva sloty a duration.value
duration.min
(118.0
a 110.0
, v uvedeném pořadí).
T
| extend d=parse_json(context_custom_metrics)
| extend duration_value=d.duration.value, duration_min=d["duration"]["min"]
Poznámky
Běžně se používá řetězec JSON popisující kontejner vlastností, ve kterém je jeden ze slotů jiným řetězcem JSON.
Příklad:
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d
V takových případech je nutné nejen dvakrát vyvolat parse_json
, ale také zajistit, tostring
aby se při druhém volání použilo. V opačném případě druhé volání parse_json
pouze předá vstup výstupu tak, jak je, protože jeho deklarovaný typ je dynamic
.
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d_b_c=parse_json(tostring(parse_json(d).b)).c
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro