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 处理。
English version