JSL a JSONCon las últimas funciones JMP 14 JSON: Parse JSON(); JSON a tabla de datos(); y JSON a la lista(); Sería realmente fantástico si pudiéramos revertir este proceso.Me gustaría convertir una matriz asociativa JSL en una cadena JSON.Me doy cuenta de que existe una solución para convertir una tabla de datos en una cadena JSON, pero la más importante de estas características sería convertir una AA en una cadena JSON.
Automatización y secuencias de comandosRe: JSL a JSONSería bueno si el ejemplo anterior de asJSONexpr() actuando en una matriz asociativa fuera un ejemplo en el índice de secuencias de comandos para esa función. Lo mismo ocurre con .json que figura entre los "formatos admitidos incluidos" en la descripción de SaveAs.
Re: JSL a JSON - Estado cambiado a: ReconocidoHola @msharp , ¡Gracias por su sugerencia! Hemos capturado su solicitud y la tomaremos en consideración.
Re: JSL a JSONHola @erin_vang , También tuve este problema, donde no se podía convertir una tabla a formato JSON. Terminé haciendo un guión que hace eso. ¡No es el más elegante, pero definitivamente hace el trabajo bastante rápido!
//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>
¡Espero que ayude hasta que se desarrolle algo formal!
Re: JSL a JSON@erin_vang @msharp ,
Como creo que ambos ya lo habrán descubierto, dt << save [as] ("something.json") creará la salida de cadena json que desee. Le pasé la solicitud a nuestros desarrolladores de un mensaje JSL para recuperar la cadena JSON directamente de la tabla sin la necesidad de guardarla y recargarla desde un archivo.
Sin embargo, la parte que ya existe en JMP es la conversión de una lista JSL/matriz asociativa a JSON. Esto se puede hacer usando la función As JSON Expr().
aa = ["age" => 17, "height" => 68, "name" => "KIRK", "sex" => "M", "weight" => 134];
json = As JSON Expr( aa );
Write( "\!N" || json );
Registro:
{"age":17,"height":68,"name":"KIRK","sex":"M","weight":134}
Saludos,
justin
Re: JSL a JSON...
Re: JSL a JSONGracias, msharp, pero lo que estás describiendo es lo que ya existe: de JSON a la tabla de datos. Lo que ambos solicitamos es lo contrario: de la tabla de datos a JSON. Afortunadamente, ya existe y acabo de toparme con el lugar donde lo han escondido. En la GUI, está en Archivo/Exportar/datos JSON, y el equivalente JSL es dt << guardar como (“nombre de archivo.json”).Re: JSL a JSONComo mencioné, para las tablas de datos existe una solución fácil, que no estoy seguro de que usted conozca.Todavía es complicado y debería ser sencillo.Sin embargo, para listas y matrices no hay solución alternativa.Tendrás que escribir alguna solución.Espero que JMP incluya esto directamente en 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 a JSON¡Muy de acuerdo! Acabo de enviar la misma solicitud al soporte técnico: Hola. Me gustaría solicitar una característica análoga a la función JSL existente: dt= JSON To Data Table(); Si bien no es complicado escribirlo manualmente, sería mejor (y más ordenado) si también pudiéramos tener uno de estos para hacer lo inverso: dt << get JSON(); json = JSON de la tabla de datos (dt); Creo que la primera forma sería la más natural para los usuarios experimentados de JSL, pero la segunda forma la resalta un poco mejor en el léxico JSL. Cualquiera de las dos formas funcionaría, por supuesto. De manera similar, aunque no es demasiado difícil hacer esto manualmente, sería bueno tener un inverso para esto: array|list = Parse JSON( json ); tales como: json = Como JSON (lista|matriz); ¡Gracias por considerarlos!