将 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 脚本

问题来源:https://stackoverflow.com/questions/72197515/trying-to-convert-a-json-file-or-string-to-a-csv-file-gives-an-empty-csv-file