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[ ] 区别是 结果是不是在[ ]里面。

 

posted @ 2024-12-17 20:25  铿锵有力自信且坚定  阅读(147)  评论(0)    收藏  举报