What is the JSON to CSV converter in under 10 lines of code?

 

问题

https://www.quora.com/What-is-the-JSON-to-CSV-converter-in-under-10-lines-of-code

解答

要在这么短的代码内完成,大概只能用SPL(一种 Java 的开源包)了。

比如有json 文件(json.json)如下:

{
"array":[
{
"id":1,
"name":"Tom"
},
{
"id":2,
"name":"Jerry"
},
{
"id":3,
"name":"Lucy"
}
]

}

转换成csv 文件(json.csv),如下:

id,name

1,Tom

2,Jerry

3,Lucy

SPL 代码只要 1 句:


A

1

=file("json.csv").export@ct(json(file("json.json").read()).array)

SPL提供了JDBC 供 JAVA 调用,把上面的脚本存为 json2csv.splx,在 JAVA 中以存储过程的方式调用脚本文件:

Class.forName("com.esproc.jdbc.InternalDriver");

con= DriverManager.getConnection("jdbc:esproc:local://");

st=con.prepareCall("call json2csv()");

st.execute();

或在JAVA 中以 SQL 方式直接执行 SPL 串:

st = con.prepareStatement("==file(\"json.csv\").export@ct(json(file(\"json.json\").read()).array)");
st.execute();

多层json 也可以很轻松地被 SPL 处理。

SPL 源代码:https://github.com/SPLWare/esProc

问答搜集