JSL 到 JSON具有最新的 JMP 14 JSON 功能:Parse JSON(); JSON 转数据表();和 JSON To List();如果我们能够扭转这个过程,那就太好了。我想将 JSL 关联数组转换为 JSON 字符串。我意识到有一种解决方法可以将数据表转换为 JSON 字符串,但这些功能中最重要的是将 AA 转换为 JSON 字符串。
自动化和脚本编写回复:JSL 到 JSON如果上面作用于关联数组的 asJSONexpr() 示例是该函数的脚本索引中的示例,那就太好了。 同样,.json 被列在 SaveAs 描述中的“支持的格式包括”中。
回复:JSL 到 JSON - 状态更改为:已确认你好@msharp , 谢谢你的建议! 我们已收到您的请求并将予以考虑。
回复:JSL 到 JSON你好@erin_vang ,我也遇到了这个问题,无法将表转换为 JSON 格式。 我最终制作了一个脚本来做到这一点。 它不是最优雅的,但它确实可以很快完成工作!
//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>
希望在正式开发之前有所帮助!
回复:JSL 到 JSON@erin_vang @msharp ,
我想你们都已经明白了, dt << save [as] ("something.json") 将创建一个您想要的 json 字符串输出。 我已将 JSL 消息的请求传递给我们的开发人员,以直接从表中检索 JSON 字符串,而无需从文件保存和重新加载。
然而,JMP 中已经存在的部分是从 JSL 列表/关联数组到 JSON 的转换。 这可以使用 As JSON Expr() 函数来完成。
aa = ["age" => 17, "height" => 68, "name" => "KIRK", "sex" => "M", "weight" => 134];
json = As JSON Expr( aa );
Write( "\!N" || json );
日志:
{"age":17,"height":68,"name":"KIRK","sex":"M","weight":134}
问候,
贾斯汀
回复:JSL 到 JSON...
回复:JSL 到 JSON谢谢,msharp,但你所描述的是已经存在的内容:从 JSON 到数据表。 我们都要求的是相反的:从数据表到 JSON。 令人高兴的是,它确实已经存在,而且我刚刚碰到了他们隐藏它的地方。 在 GUI 中,它位于 File/Export/JSON 数据中,JSL 等效项是 dt << save as(“filename.json”)。回复:JSL 到 JSON正如我提到的,对于数据表,有一个简单的解决方法,我不确定您是否知道。它仍然很复杂,应该是一个简单的衬里。然而,对于列表和数组,没有解决方法。您必须编写一些解决方案的脚本。我确实希望 JMP 直接将其包含在 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 );
回复:JSL 到 JSON强烈同意! 我刚刚向技术支持发送了大致相同的请求:嗨。 我想请求一个类似于现有 JSL 函数的功能:dt= JSON To Data Table();虽然手动编写脚本并不复杂,但如果我们也可以使用其中之一来执行相反的操作,那就更好了(也更整洁): dt << get JSON(); json = 来自数据表的 JSON( dt );我认为第一种形式对于有经验的 JSL 用户来说是最自然的,但第二种形式在 JSL 词典中表现得更好一些。 当然,无论哪种方式都会起作用。 同样,虽然手动执行此操作不太困难,但最好有一个逆操作: array|list = Parse JSON( json );如: json = As JSON ( list|array );感谢您考虑这些!