将 json 串转换成 csv 文件
多层 json 文件如下,其中 values 字段的第一个成员是其他成员的字段名:
{
"range": "products!A1:E4",
"majorDimension": "ROWS",
"values": [
[
"product_name",
"price"
],
[
"Rugrats - Bedtime Bash [VHS]",
"36.95"
],
[
"Teenage Mutant Ninja Turtles II - The Secret of the Ooze [VHS]",
"29.89"
],
[
"Teenage Mutant Ninja Turtles II - The Secret of the Ooze [VHS]",
"29.89"
]
]
}
请用Java将该json文件转为格式规范的csv
range,majorDimension,product_name,price
products!A1:E4,ROWS,Rugrats - Bedtime Bash [VHS],36.95
products!A1:E4,ROWS,Teenage Mutant Ninja Turtles II - The Secret of the Ooze [VHS],29.89
products!A1:E4,ROWS,Teenage Mutant Ninja Turtles II - The Secret of the Ooze [VHS],29.89
编写 SPL脚本:
A |
|
1 |
=json(file("source.json").read()) |
2 |
=A1.values.m(2:).new(A1.range:range,A1.majorDimension:majorDimension,~1:product_name,~2:price) |
3 |
=T("result.csv":A2) |
A1:将 json 文件读为字符串,并转为 json 对象。
A2:取 A1 的 values 字段的第 2 到最后一个成员,根据这个序列生成二维表。~1 表示第 1 个成员。
A3:将二维表写入 csv 文件,带字段名。
Java 集成 SPL 可参考 Java 如何调用 SPL 脚本
英文版