首页 > 解决方案 > SAS 将 .sas7bat 转换为 JSON

问题描述

使用SAS 9.4 M6,是否有一种简单的方法可以将 .sas7bat 文件转换为 JSON 格式?这在 STP 中是必需的,以便 JSON 可以以某种方式包含在proc stream 中

要么有一个函数/宏,它可以打印在proc 流中格式化的文件,要么创建一个单独的 STP,它只返回一个 JSON 文件,以便它可以从 Web 应用程序在后台加载。

标签: jsonsassas-macro

解决方案


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;

要将它包含在流中,您可以使用_weboutfileref,或者如果您确实需要PROC STREAM,您可以将其写入文件,将其读入一个大宏变量或使用 %include,然后将其写回在PROC STREAM执行期间。但我怀疑你可以_webout在这里使用并跳过PROC STREAM

这是一个在存储过程中使用带有 _WEBOUT 的 PROC JSON 的示例


推荐阅读