linux命令 jq
命令:jq
作用:处理json数据
1.基本使用 :
jq .
# 例子
[root@izf8z4v6wdz3nrxjjxm2u0z ~]# cat json.txt|jq .
{
"name": "zhansan",
"age": 28,
"is_student": true,
"courses": [
"Math",
"Science",
"History"
],
"address": {
"street": "456 Elm St",
"city": "Othertown"
}
}
2. 选择元素:(单引号里面加管道符-连续处理)
选择特定字段:jq '.name'
选择数组中的元素:jq '.courses | .[0]'
3.map()函数
map()函数是jq一个非常有用的工具,它允许你对数组中的每个元素应用一个表达式,并收集结果到一个新的数组中
1)map(.age >30) 显示结果为flase/true
2)map(select(.age>30)) 显示结果为原数据
3)map( if 条件 then 结果1 else 结果2 end)
# 想要结果打印什么格式,就写什么格式
数组 [.key,.value1.value2] (打印出错,可以给选择的部分加个括号,例如(.key))
字典{key: .key, value: .value1.value2} (可以给key重新起名)
4.del()函数--删除某项
cat json.txt | jq 'del(.age)'
5.to_entries函数 (to_entries[ ])
to_entries函数:用于将对象转换为数组,其中每个元素都是一个包含两个键key和value的对象,这对于处理嵌套对象特别有用,因为它允许你选代对象的每个键值对。
对于每个数据keys值不通的keys,可用to_entries(或to_entries[ ])转化成相同的key,原key的key为"key”,原key对应的value值的key为"value”。
to_entrie与to_entries[ ] 区别是 结果是不是在[ ]里面。

浙公网安备 33010602011771号