jq - 处理json串
简介
主要在linux中,对json串进行美化和取值,我经常用在shell里
json串美化
[root@master ~]# echo '{"name":"vick","age":19}' | jq
{
"name": "vick",
"age": 19
}
取值
取kv对
# 取一个
[root@master ~]# echo '{"name":"vick","age":19}' | jq '.name'
"vick"
# 取多个
[root@master ~]# echo '{"name":"vick","age":19}' | jq '.name,.age'
"vick"
19
取所有key
# map结构取出结果是keys
[root@master ~]# echo '{"name":"vick","age":19}' | jq keys
[
"age",
"name"
]
# list结构取出结果是索引
[root@master ~]# echo '[1,2,3,4,5]' | jq keys
[
0,
1,
2,
3,
4
]
取list
[root@master ~]# echo '[1,2,3,4,5]' | jq .[]
1
2
3
4
5
多个过滤器
[root@master ~]# echo '[{"name":"Tom"},{"name":"Tim"}]' | jq .[]
{
"name": "Tom"
}
{
"name": "Tim"
}
# 递进取值
[root@master ~]# echo '[{"name":"Tom"},{"name":"Tim"}]' | jq '.[] | .name'
"Tom"
"Tim"
判断取值
[root@master ~]# echo '[1,2,3,4,5]' | jq 'map(select (. >= 3))'
[
3,
4,
5
]
判断输出
[root@master ~]# echo $?|jq 'if . == 0 then "ok" elif . == 1 then "1" else "err" end'
"err"
计算
[root@master ~]# echo '[1,2,3,4,5]' | jq 'map(.+1)'
[
2,
3,
4,
5,
6
]
格式化输出
# 直接取值
[root@master ~]# echo '"Tim"' | jq '"my name is \(.)"'
"my name is Tim"
# map取值
[root@master ~]# echo '{"name":"vick"}' | jq '"my name is \(.name)"'
"my name is vick"
欢迎加 1092845214 交流沟通呀~
本文来自博客园,作者:难德糊涂,转载请注明原文链接:https://www.cnblogs.com/yangkaiyue/p/18245146
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗