2017-03-17 6 views
0

Ich möchte Werte eines JSON (Nachricht) -Objekts lesen, das Array darin hat.Wie man Attribut von JSON liest

Diese Abfrage unten hilft für sofortige Eigenschaften in d.

traces | extend d = parsejson(message) | d.Timestamp, d.Name; 

Wie lese ich Eigenschaft Teil eines Arrays innerhalb von d (Nachricht). Zum Beispiel, wenn ich alle Straßenwerte in der unteren Nachricht lesen möchte .. wie geht das? Dies wird benötigt Art einer Schleife

message 
{ 
    "Timestamp": "12-12-2008", 
    Name: "Alex", 
    address: { 
     [{"street": "",zip:""},{"street":"", "zip":""}] 
    } 
} 

Antwort

1

Eine Möglichkeit, dies zu tun wäre, mit dem mvexpand Operator (siehe documentation).
Es wird eine einzelne Zeile für jedes Element in Ihrem Array ausgeben, über das Sie iterieren können.
So in Ihrem Beispiel läuft:

traces | extend d = parsejson(message) | mvexpand d.address 

Will Ausgabe eine Zeile für jede Adresse.

+0

Dank @EranG, das funktioniert! Für alle hier ist eine Beispielabfrage: 'Spuren | extend x = parsejson ("{\" name \ ": \" sp1 \ ", \" adressen \ ": [{" street \ ": \" hollywood blvd \ "}, {\" street \ ": \" mullhond drive \ "}]}). Adressen | mvexpand x | Projekt X;' – Praveen