JSL in JSONCon le ultime funzionalità JSON di JMP 14: Analizza JSON(); JSON alla tabella dati(); e JSON To List(); sarebbe davvero fantastico se potessimo invertire questo processo.Vorrei trasformare un array associativo JSL in una stringa JSON.Mi rendo conto che c'è una soluzione per trasformare una tabella dati in una stringa JSON, ma la più importante di queste funzionalità sarebbe trasformare un AA in una stringa JSON.
Automazione e scriptingRi: JSL a JSONSarebbe bello se l'esempio sopra di asJSONexpr() che agisce su un array associativo fosse un esempio nell'indice di scripting per quella funzione. Idem per .json elencato tra i "formati supportati inclusi" nella descrizione di SaveAs.
Oggetto: Da JSL a JSON - Stato modificato in: RiconosciutoCIAO @msharp , Grazie per il tuo suggerimento! Abbiamo catturato la tua richiesta e la prenderemo in considerazione.
Ri: JSL a JSONCIAO @erin_vang , ho riscontrato anche questo problema, per cui non era possibile convertire una tabella in un formato JSON. Alla fine ho realizzato una sceneggiatura che lo facesse. Non è il più elegante, ma sicuramente fa il lavoro abbastanza velocemente!
//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>
Spero che questo aiuti finché non verrà sviluppato qualcosa di formale!
Ri: JSL a JSON@erin_vang @msharp ,
Come penso che entrambi abbiate capito, dt << save [as] ("something.json") creerà l'output di stringa json che desideri. Ho passato la richiesta ai nostri sviluppatori di un messaggio JSL per recuperare la stringa JSON direttamente dalla tabella senza la necessità di salvare e ricaricare da un file.
Tuttavia, la parte che già esiste in JMP è la conversione da un elenco/array associativo JSL a JSON. Questo può essere fatto utilizzando la funzione As JSON Expr().
aa = ["age" => 17, "height" => 68, "name" => "KIRK", "sex" => "M", "weight" => 134];
json = As JSON Expr( aa );
Write( "\!N" || json );
Tronco d'albero:
{"age":17,"height":68,"name":"KIRK","sex":"M","weight":134}
Saluti,
Giustino
Ri: JSL a JSON...
Ri: JSL a JSONGrazie, msharp, ma quello che stai descrivendo è ciò che è già lì: da JSON alla tabella dati. Ciò che entrambi abbiamo richiesto è il contrario: dalla tabella dati a JSON. Per fortuna, però, esiste già e mi sono appena imbattuto nel luogo in cui l'hanno nascosto. Nella GUI, è in File/Export/JSON data e l'equivalente JSL è dt << save as(“filename.json”).Ri: JSL a JSONCome ho già detto, per le tabelle di dati esiste una soluzione semplice, di cui non sono sicuro che tu sia a conoscenza.È ancora contorto e dovrebbe essere una semplice battuta.Tuttavia, per elenchi e array non è possibile risolvere il problema.Dovrai scrivere qualche soluzione.Spero che JMP lo includa direttamente in 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 );
Ri: JSL a JSONFortemente d'accordo! Ho appena inviato più o meno la stessa richiesta al supporto tecnico: Ciao. Vorrei richiedere una funzionalità analoga alla funzione JSL esistente: dt= JSON To Data Table(); Anche se non è complicato scriverlo manualmente, sarebbe più carino (e più ordinato) se potessimo avere anche uno di questi per fare il contrario: dt << get JSON(); json = JSON dalla tabella dati (dt); Penso che la prima forma sarebbe la più naturale per gli utenti JSL esperti, ma la seconda forma emerge un po' meglio nel lessico JSL. In ogni caso funzionerebbe, ovviamente. Allo stesso modo, anche se non è troppo difficile farlo manualmente, sarebbe carino avere un inverso per questo: array|list = Parse JSON( json ); come ad esempio: json = As JSON ( lista|array ); Grazie per averli considerati!