json - SAS 将 .sas7bat 转换为 JSON
问题描述
使用SAS 9.4 M6,是否有一种简单的方法可以将 .sas7bat 文件转换为 JSON 格式?这在 STP 中是必需的,以便 JSON 可以以某种方式包含在proc stream 中。
要么有一个函数/宏,它可以打印在proc 流中格式化的文件,要么创建一个单独的 STP,它只返回一个 JSON 文件,以便它可以从 Web 应用程序在后台加载。
解决方案
SAS 可以通过多种方式编写 JSON - 最简单的两种方式是:
PROC JSON - 这允许您在某些有限格式内编写 JSON。如果您正在编写的 JSON 非常简单,那么这是一种非常简单的方法 - 只需将数据集传递给它,它就会使用它生成一个单级 JSON 文件。如果您有复杂的结构,这也不起作用。
另请参阅PROC JSON 提示表。
数据步骤 - 如果您需要更复杂的东西,只需将其与数据步骤一起编写!我之前写过自定义宏来简化它——比如
%write_array
写一个数组或%start_object
启动一个新对象,诸如此类;但它确实有点复杂。然而,这是完成真正复杂结构的唯一方法,超出了 PROC JSON 的能力。
PROC JSON 与 PROC EXPORT 一样简单,但是……文档中的示例说明了一切:
proc json out="C:\Users\sasabc\JSON\DefaultOutput.json";
export sashelp.class;
run;
要将它包含在流中,您可以使用_webout
fileref,或者如果您确实需要PROC STREAM
,您可以将其写入文件,将其读入一个大宏变量或使用 %include,然后将其写回在PROC STREAM
执行期间。但我怀疑你可以_webout
在这里使用并跳过PROC STREAM
。
推荐阅读
- php - 将动态徽标添加到 Genesis 主导航
- r - 使用 R 计算出现在同一组中的行数
- discord - 我如何知道我的 Windows 10 连接了多少台服务器?
- regex - 仅在 perl 正则表达式中匹配最后一次出现
- sql - 如何在特定事务的屏幕中从 SQLite 数据库中获取保存的数据?
- python - Python Socket 编码和解码客户端数据
- redis - 使用范围命令时是否可以使redis返回长值
- python - 3D 中的向量 3 体问题,向量需要 x、y、dy 和 dx 的错误
- html - 让 Boostrap 父 col 在子 col 之前崩溃?
- browser - 有没有办法让 Unicode 符号在固定宽度字体中固定宽度?