<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 eine JMP-Datentabelle. JSON stellt eine Struktur aus verschachtelten „Arrays“ und „Objekten“ dar. JSON-Typen/-Werte werden in JSL wie folgt dargestellt:
| JSON | JSL | Anmerkungen |
|---|
| Array | Liste | Folge von Werten |
| Objekt | assoziatives Array | Menge benannter Werte |
| Nummer | Nummer | |
| Zeichenfolge | Zeichenfolge | |
| WAHR | 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 den Array-Werten zu entsprechen.
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}
]
}
JSL konvertiert
Associative Array(
{{"country", {
["name" => "France", "population" => 66.1],
["name" => "Germany", "population" => 80.8]
}},
{"region", "Europe"}}
)
Beachten Sie, dass die Reihenfolge der Set-Elemente nicht beibehalten wird. Es wird in JMP alphabetisch.
Auf die Werte des analysierten Objekts kann mit normaler JSL-Subskription zugegriffen werden. Zum Beispiel, wenn Daten enthält das obige Analyseergebnis. Sie können 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 Implementierung
Bitte melden Sie Probleme an die Dateiaustauschdiskussion oder an xan.gregg@jmp.com .
Aktualisieren : Ich habe auch Craiges beigefügt JSON-Parser II.jsl , eine viel schnellere Version von JSON Parser.jsl.
Großartig – meine 5-minütige Analyse dauert jetzt nur noch 1 Sekunde!
Cleverer Xan-Code: Die Verwendung einer JSL-Liste als Stapel für den Umgang mit der verschachtelten JSON-Struktur ist eine großartige Idee.
Schnelles JSON-Parsing mit Pattern Matching Schnellere Variation Ihres Codes, noch nicht gut getestet.
Vielen Dank für den Hinweis auf die Funktion „Einfügen“, das war ein wichtiger Teil des Puzzles.