有人知道如何将以下JSON转换为SAS中的表格式吗?提前感谢任何帮助!
JSON>{
"totalCount": 2,
"facets": {},
"content": [
[
{
"name": "customer_ID",
"value": "1"
},
{
"name": "customer_name",
"value": "John"
}
],
[
{
"name": "customer_ID",
"value": "2"
},
{
"name": "customer_name",
"value": "Jennifer"
}
]
]
}
期望输出值
customer_ID | customer_name | 1 | 约翰 | 2
---|---|
詹妮弗 |
从您所在的位置,您有一个非常简单的步骤来转换为您想要的-PROC TRANSPOSE
。
filename test "h:temptest.json";
libname test json;
data pre_trans;
set test.content;
if name='customer_ID' then row+1;
run;
proc transpose data=pre_trans out=want;
by row;
id name;
var value;
run;
您也可以直接在data步骤中执行此操作;两种方法都有优点。
data want;
set test.content;
retain customer_ID customer_name;
if name='customer_ID' then customer_ID=input(value,best.);
else if name='customer_name' then do;
customer_name = value;
output;
end;
run;
这个数据步骤在上面的例子中工作得很好——proc transpose
在更复杂的例子中工作得更好,因为你只需要硬编码一个值。
我怀疑你可以用一个合适的JSON映射更直接地做到这一点,但我通常不这样做——对我来说,把它放入一个数据集然后从那里使用它更容易。
在这种情况下,SAS被在第二个数组之前没有内容的双数组绊倒了——如果那里有一些(任何)内容,它会更自然地解析。因为SAS没有真正判断您想对Content数组做什么,所以它只是让您对它做任何您想做的事情——这很容易。