<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ce fichier JSL contient des fonctions pour convertir JSON texte dans une structure de données JSL ou une table de données JMP. JSON représente une structure de "tableaux" et "d'objets" imbriqués. Les types/valeurs JSON sont représentés comme suit dans JSL :
| JSON | JSL | Remarques |
|---|
| déployer | liste | séquence de valeurs |
| objet | tableau associatif | ensemble de valeurs nommées |
| nombre | nombre | |
| chaîne | chaîne | |
| vrai | 1.0 | |
| FAUX | 0.0 | |
| nul | . | valeur manquante |
Lorsqu'ils sont convertis en table de données JMP, les noms représentent des colonnes et les valeurs de tableau représentent des lignes. Les valeurs non matricielles sont remplies pour correspondre aux valeurs matricielles.
Fonctions principales
Toutes les fonctions sont dans l'espace de noms "JSON" pour éviter les collisions de noms avec autres fonctions.
dt = JSON:Make Table( json text | obj )
obj = JSON:Parse( json text )
Exemple de données
JSON d'origine
{"region":"Europe",
"country":[
{"name":"France", "population":66.1},
{"name":"Germany", "population":80.8}
]
}
JSL converti
Associative Array(
{{"country", {
["name" => "France", "population" => 66.1],
["name" => "Germany", "population" => 80.8]
}},
{"region", "Europe"}}
)
Notez que l'ordre des éléments de l'ensemble n'est pas conservé. Il devient alphabétique dans JMP.
Les valeurs de l'objet analysé sont accessibles avec un indice JSL normal. Par exemple, si données contient le résultat d'analyse ci-dessus, vous pouvez y accéder avec :
data["country"][1]["name"]; // "France"
Table de données convertie
| nom du pays | pays.population | région |
|---|
| France | 66.1 | L'Europe |
| Allemagne | 80,8 | L'Europe |
Notez que la valeur de la région est répétée.
Remarques sur la mise en œuvre
Veuillez signaler les problèmes à la discussion sur l'échange de fichiers ou à xan.gregg@jmp.com .
Mise à jour : J'ai aussi attaché Craige's Analyseur JSON II.jsl , qui est une version beaucoup plus rapide de JSON Parser.jsl.
Génial - mon analyse de 5 minutes est maintenant réduite à 1 seconde !
Code intelligent Xan, utiliser une liste JSL comme une pile pour gérer la structure JSON imbriquée est une excellente idée.
Analyse JSON rapide à l'aide de la correspondance de modèles Variation plus rapide de votre code, toujours pas bien testé.
Merci de m'avoir indiqué la fonction Insertion, c'était une pièce importante du puzzle.