<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Diese JSL-Datei enthält Funktionen zum Konvertieren JSON Text entweder in eine JSL-Datenstruktur oder in eine JMP-Datentabelle. JSON repräsentiert eine Struktur aus verschachtelten „Arrays“ und „Objekten“. JSON-Typen/Werte werden in JSL wie folgt dargestellt:
| JSON | JSL | Anmerkungen |
|---|
| Reihe | Liste | Folge von Werten |
| Objekt | assoziatives Array | Menge benannter Werte |
| Anzahl | Anzahl | |
| Schnur | Schnur | |
| Stimmt | 1.0 | |
| FALSCH | 0,0 | |
| Null | . | fehlender Wert |
Bei der Konvertierung in eine JMP-Datentabelle stellen Namen Spalten und Array-Werte Zeilen dar. Nicht-Array-Werte werden aufgefüllt, um mit Array-Werten übereinzustimmen.
Hauptfunktionen
Alle Funktionen befinden sich im Namensraum „JSON“, um Namenskollisionen zu vermeiden andere Funktionen.
dt = JSON:Make Table( json text | obj )
obj = JSON:Parse( json text )
Beispieldaten
Original-JSON
{"region":"Europe",
"country":[
{"name":"France", "population":66.1},
{"name":"Germany", "population":80.8}
]
}
Konvertiertes JSL
Associative Array(
{{"country", {
["name" => "France", "population" => 66.1],
["name" => "Germany", "population" => 80.8]
}},
{"region", "Europe"}}
)
Beachten Sie, dass die Reihenfolge der Satzelemente nicht beibehalten wird. Es wird in JMP alphabetisch.
Auf Werte des geparsten Objekts kann mit normaler JSL-Subskription zugegriffen werden. Zum Beispiel, wenn Daten das obige Parse-Ergebnis enthält, können Sie darauf zugreifen mit:
data["country"][1]["name"]; // "France"
Konvertierte Datentabelle
| Ländername | Land.Bevölkerung | Region |
|---|
| Frankreich | 66.1 | Europa |
| Deutschland | 80.8 | Europa |
Beachten Sie, dass der Regionswert wiederholt wird.
Hinweise zur Umsetzung
Bitte melden Sie Probleme der File Exchange-Diskussion oder an xan.gregg@jmp.com .
Aktualisieren : Ich habe auch Craiges beigefügt JSON-Parser II.jsl , die eine viel viel schnellere Version von JSON Parser.jsl ist.
Großartig – meine 5-Minuten-Analyse ist jetzt auf 1 Sekunde reduziert!
Cleverer Code Xan, die Verwendung einer JSL-Liste als Stapel, um mit der verschachtelten JSON-Struktur umzugehen, ist eine großartige Idee.
Schnelles JSON-Parsing mit Musterabgleich Schnellere Variation Ihres Codes, noch nicht gut getestet.
Danke, dass Sie mich auf die Einfügen-Funktion hingewiesen haben, das war ein wichtiger Teil des Puzzles.