JSL zu JSONMit den neuesten JMP 14 JSON-Funktionen: Parse JSON(); JSON zu Datentabelle(); und JSON To List(); Es wäre wirklich großartig, wenn wir diesen Prozess umkehren könnten.Ich möchte ein assoziatives JSL-Array in einen JSON-String umwandeln.Mir ist klar, dass es einen Workaround gibt, eine Datentabelle in einen JSON-String umzuwandeln, aber die wichtigste dieser Funktionen wäre, eine AA in einen JSON-String umzuwandeln.
Automatisierung und SkripterstellungBetreff: JSL zu JSONEs wäre schön, wenn das obige Beispiel von asJSONexpr(), das auf ein assoziatives Array wirkt, ein Beispiel im Skriptindex für diese Funktion wäre. Das Gleiche gilt für .json, das in der Beschreibung für SaveAs unter den „unterstützten Formaten“ aufgeführt ist.
Betreff: JSL zu JSON – Status geändert in: BestätigtHallo @msharp , Danke für deinen Vorschlag! Wir haben Ihre Anfrage erfasst und werden sie prüfen.
Betreff: JSL zu JSONHallo @erin_vang Ich hatte auch dieses Problem, bei dem man eine Tabelle nicht in ein JSON-Format konvertieren konnte. Am Ende habe ich ein Skript erstellt, das das tut. Es ist nicht das eleganteste, aber es erledigt seine Aufgabe auf jeden Fall ziemlich schnell!
//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>
Ich hoffe, das hilft, bis etwas Formales entwickelt ist!
Betreff: JSL zu JSON@erin_vang @msharp ,
Ich denke, Sie beide haben herausgefunden, dass dt << save [as] ("something.json") die gewünschte JSON-String-Ausgabe erstellt. Ich habe die Anfrage an unsere Entwickler für eine JSL-Nachricht weitergeleitet, um die JSON-Zeichenfolge direkt aus der Tabelle abzurufen, ohne dass eine Datei gespeichert und neu geladen werden muss.
Der Teil, der in JMP jedoch bereits vorhanden ist, ist die Konvertierung von einer JSL-Liste/einem assoziativen Array in JSON. Dies kann mit der Funktion „As JSON Expr()“ erfolgen.
aa = ["age" => 17, "height" => 68, "name" => "KIRK", "sex" => "M", "weight" => 134];
json = As JSON Expr( aa );
Write( "\!N" || json );
Protokoll:
{"age":17,"height":68,"name":"KIRK","sex":"M","weight":134}
Grüße,
Justin
Betreff: JSL zu JSON...
Betreff: JSL zu JSONDanke, msharp, aber was Sie beschreiben, ist das, was bereits vorhanden ist: von JSON in die Datentabelle. Was wir beide gefordert haben, ist das Gegenteil: von der Datentabelle in JSON. Glücklicherweise existiert es jedoch bereits, und ich bin gerade darauf gestoßen, wo sie es versteckt haben. In der GUI befindet es sich in Datei/Export/JSON-Daten, und das JSL-Äquivalent ist dt << save as(“filename.json”).Betreff: JSL zu JSONWie ich bereits erwähnt habe, gibt es für Datentabellen eine einfache Lösung, die Ihnen vermutlich nicht bekannt ist.Es ist immer noch kompliziert und sollte ein einfacher Einzeiler sein.Für Listen und Arrays gibt es jedoch keine Problemumgehung.Sie müssen eine Lösung schreiben.Ich hoffe, dass JMP dies direkt in JMP integriert.
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 );
Betreff: JSL zu JSONStimme voll und ganz zu! Ich habe gerade die gleiche Anfrage an den technischen Support gesendet: Hallo. Ich möchte eine Funktion analog zur vorhandenen JSL-Funktion anfordern: dt= JSON To Data Table(); Obwohl es nicht kompliziert ist, es manuell zu skripten, wäre es schöner (und aufgeräumter), wenn wir auch eines davon hätten, um das Gegenteil zu tun: dt << get JSON(); json = JSON From Data Table( dt ); Ich denke, dass die erste Form für erfahrene JSL-Benutzer am natürlichsten wäre, aber die zweite Form bringt sie im JSL-Lexikon etwas besser zum Ausdruck. So oder so würde es natürlich funktionieren. Auch wenn es nicht allzu schwierig ist, dies manuell zu tun, wäre es schön, eine Umkehrung dafür zu haben: array|list = Parse JSON( json ); wie zum Beispiel: json = As JSON ( list|array ); Vielen Dank, dass Sie darüber nachgedacht haben!