JSL vers JSONAvec les dernières fonctionnalités JMP 14 JSON : Parse JSON(); JSON vers la table de données (); et JSON vers la liste (); ce serait vraiment formidable si nous pouvions inverser ce processus.Je voudrais transformer un tableau associatif JSL en chaîne JSON.Je me rends compte qu'il existe une solution pour transformer une table de données en chaîne JSON, mais la plus importante de ces fonctionnalités serait de transformer un AA en chaîne JSON.
Automatisation et scriptsRe : JSL vers JSONCe serait bien si l'exemple ci-dessus de asJSONexpr() agissant sur un tableau associatif était un exemple dans l'index de script pour cette fonction. Idem pour .json étant répertorié parmi les "formats pris en charge inclus" dans la description de SaveAs.
Re : JSL vers JSON – Statut modifié en : ReconnuSalut @msharp , Merci pour votre suggestion! Nous avons pris en compte votre demande et la prendrons en considération.
Re : JSL vers JSONSalut @erin_vang , j'ai également eu ce problème, où l'on ne pouvait pas convertir une table au format JSON. J'ai fini par créer un script qui fait ça. Ce n'est pas le plus élégant, mais il fait définitivement le travail assez rapidement !
//initialize with an empty list, and create list with i rows
dt=Current Data Table();
aa_list=list();
for(i=1,i<=nrows(dt),i+=1,
aa_list[i]=associative array();
);
//Each dictionary/AA is a row, insert each row's column value to the dictionary/AA
for(j=1,j<=N items(aa_list),j+=1,
for(m=1,m<=ncols(dt),m+=1,
aa_list[j]<<INSERT></INSERT>
J'espère que cela aidera jusqu'à ce que quelque chose de formel soit développé !
Re : JSL vers JSON@erin_vang @msharp ,
Comme je pense que vous l'avez tous les deux compris, dt << save [as] ("something.json") créera une sortie de chaîne json souhaitée. J'ai transmis la demande à nos développeurs pour un message JSL permettant de récupérer la chaîne JSON directement à partir de la table sans avoir besoin de sauvegarder et de recharger à partir d'un fichier.
Cependant, la partie qui existe déjà dans JMP est la conversion d'une liste/tableau associatif JSL en JSON. Cela peut être fait en utilisant la fonction As JSON Expr().
aa = ["age" => 17, "height" => 68, "name" => "KIRK", "sex" => "M", "weight" => 134];
json = As JSON Expr( aa );
Write( "\!N" || json );
Enregistrer:
{"age":17,"height":68,"name":"KIRK","sex":"M","weight":134}
Salutations,
Justin
Re : JSL vers JSON...
Re : JSL vers JSONMerci, msharp, mais ce que vous décrivez est ce qui existe déjà : du JSON à la table de données. Ce que nous avons tous deux demandé, c'est l'inverse : de la table de données vers JSON. Heureusement, il existe déjà, et je viens de tomber sur l'endroit où ils l'ont caché. Dans l'interface graphique, il se trouve dans les données Fichier/Exporter/JSON, et l'équivalent JSL est dt << save as("filename.json").Re : JSL vers JSONComme je l'ai mentionné, pour les tableaux de données, il existe une solution simple, dont je ne suis pas sûr que vous soyez au courant.C’est toujours alambiqué et devrait être une simple ligne.Cependant, pour les listes et les tableaux, il n'y a pas de solution.Vous devrez rédiger une solution.J'espère que JMP inclut cela directement dans JMP.
Names Default To Here( 1 );
tempdir = "C:\TEMP\bigclass.json";
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Save( tempdir );
json = load text file( tempdir );
Delete File( tempdir );
dt2 = JSON To Data Table( json );
Re : JSL vers JSONTout à fait d'accord ! Je viens d'envoyer à peu près la même demande au support technique : Bonjour. J'aimerais demander une fonctionnalité analogue à la fonction JSL existante : dt= JSON To Data Table(); Bien qu'il ne soit pas compliqué de le scripter manuellement, ce serait plus agréable (et plus ordonné) si nous pouvions également en avoir un pour faire l'inverse : dt << get JSON(); json = JSON à partir de la table de données (dt); Je pense que la première forme serait la plus naturelle pour les utilisateurs expérimentés de JSL, mais la seconde forme la présente un peu mieux dans le lexique JSL. Dans les deux cas, cela fonctionnerait, bien sûr. De même, même si cela n'est pas trop difficile à faire manuellement, il serait bien d'avoir un inverse pour cela : array|list = Parse JSON( json ); tels que : json = As JSON ( list|array ); Merci d'avoir pris en compte ces éléments !