通过cli将JSON转换为CSV

时间:2018-01-05 20:36:35

标签: json linux csv command-line-interface

我正在使用API​​从NetFlow Analyzer获取数据。我得到一个格式如下的JSON文件;

{"startTime":"2017-12-29 11:58","resultVector":[{"port":"*","app":"Unknown_App","dscpCode":"0","traffic":"4.77 MB","dscp":"Default","src":"20.xx.xx.2","dst":"10.xx.xx.1","dstport":"*","prot":"Unknown"}],"Type":"DestinationIN","devDetails":{"deviceID":"5000006","Total":"4.77 MB"},"TimeZone":"America/Chicago","endTime":"2018-01-05 11:58"}

我一直在尝试使用在github上找到的json2csv(https://github.com/jehiah/json2csv),并且确实成功地使用了不同的API& JSON输出格式。我跑的时候

json2csv -k port,app,dscpCode,traffic,dscp,src,dst,dstport,prot -i filein.json -o fileout2.csv

我得到一个csv文件除了" ,,,,,"。我想要得到的是流量,源IP和目标IP。

运行;     json2csv -k startTime,resultVector -i filein.json -o fileout2.csv 给我这个输出,虽然接近,但它不是csv真的

2017-12-29 11:58,[map[dscpCode:0 src:20.xx.xx.2 dst:10.xx.xx.1 prot:Unknown port:* app:Unknown_App dstport:* traffic:4.77 MB dscp:Default]]

检查了一些报告此内容的在线网站是有效的RFC 4627 JSON。其他任何熟悉json2csv的人,或者如果没有别的Linux其他cli工具我可以在脚本中使用转换?

2 个答案:

答案 0 :(得分:2)

对于 <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" /> 处理器来说,这是一个不错的选择:

jq

最终jq -r '.resultVector[] | [.traffic, .src, .dst] | @csv' filein.json > fileout2.csv 内容:

fileout2.csv

答案 1 :(得分:-1)

通常我也喜欢cli工具

如果您想将某些json快速格式化为csv,则还可以检查以下内容:

https://json-csv.com/

提供文件上传以及复制粘贴功能,以快速获得结果。