linux jq 格式化 json

背景:今天某系统传来的接口文件是json格式的,客户要求我们赶快手工处理一下。由于我们的入库程序只支持定长或固定分隔符的文件。所以网上找了下linux格式化json的工具。

网上找到了jq工具
jq官网下载
jq官网手册
官网的手册也很详细。但是examples都打不开。网上也有一些教程,但是看了很多篇,发现没有我要的需求如何操作。

先说下我的需求:

输入JSON
#cat test.json
[{"a":"1","b":"x"},{"a":"2","b":"y"},{"a":"3","b":"z"}]
输出格式
#后面的hello是自定义的字段值
1,x,hello
2,y,hello
3,z,hello
jq命令
cat test.json|jq '.[]|"\(.a),\(.b),hello"'
#命令解释(仅解释jq命令入参)
1).[] 是为了将json数组扁平化;这样才能一个json键值对能一行输出
2)| 是管道命令,可以继续执行后面的命令
3)双引号括起来的是输出文本。涉及要引用key值就用\(.xxx)的方法
如:\(.a)是引用key值为a对应的value值,同理\(.b)是引用key值为b对应的value值。
4)最后整个jq参数用单引号扩起来,走你~~

感觉这种方法如果字段比较多的话会比较笨重,也尝试找了其他方法,还没有找到合适的。如果有同学有更简洁的方法还请告知~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值