我正在使用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工具我可以在脚本中使用转换?
答案 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)