values, scalars: 分别只选择数组、对象、可迭代对象 (数组或对象)、布尔值、数字、普通数字、有限数字、字符串、空值、非空值和不可迭代对象的输入。 add: 过滤器 add 接受一个数组作为输入,并将数组的元素加在一起作为输出。这可能意味着根据输入数组元素的类型进行求和、连接或合并 —— 规则与上面描述的 + 运算符的规则相同。 any,all: 从数组或者列表中判断是否存在或者全部存在 range: 对象生成器 floor: 输出数字的低阶值 sqrt: 求开方 tonumber: 字符串转数字 tostring: 数字转字符串 type: 获取元素类型 sort,sort_by(path_expssion): 排序 unique, unique_by(path_exp): 去重 reverse: 反转 contains(element): 判断是否包含 startswith(str): 判断前缀 endswith(str): 判断后缀 split(str): 字符串转列表 join(str): 列表转字符串 while(cond; update): 条件判断 until(cond; next): 条件判断 \(foo): 引用 foo 的值 tojson,fromjson: 从原始字符串转到 json 或者从 json 转到原始字符串 @base64,@base64d: base64 编码和解码 @uri,@csv, 生成 uri,以及表格格式
## 模版数据 $ testJson='{"Name":"CloudNativeOps","Owner":"GoOps","WebSite":"https://bgbiao.top/", "Contact": {"Email":"weichuangxxb@qq.com","QQ":"371990778","WeChat":"GoOps"} ,"Skills": [ {"name":"Python","type":"dev" }, {"name":"Golang","type":"dev" },{"name":"Ansible","type":"ops" },{"name":"Kubernetes","type":"dev" },{"name":"ElasticSearch","type":"ops" }]}' ### keys $ echo ${testJson} | jq 'keys' [ "Contact", "Name", "Owner", "Skills", "WebSite" ] $ echo ${testJson} | jq 'keys_unsorted' [ "Name", "Owner", "WebSite", "Contact", "Skills" ] ### has(key) $ echo ${testJson} | jq '.Skills | map(has("name"))' [ true, true, true, true, true ] $ echo ${testJson} | jq 'has("Name") ' true ### to_entries, from_entries, with_entries $ echo ${testJson} | jq '.Contact | to_entries' [ { "key": "Email", "value": "weichuangxxb@qq.com" }, { "key": "QQ", "value": "371990778" }, { "key": "WeChat", "value": "GoOps" } ] ### select(bool_exp) ### 输出技能中包含 Ansible 的技能项 $ echo ${testJson} | jq '.Skills[] | select(.name == "Ansible")' { "name": "Ansible", "type": "ops" } ### tonumber $ echo ${testJson} |jq '.Contact.QQ | tonumber ' 371990778 $ echo ${testJson} |jq '.Contact.QQ ' "371990778" ### tostring/fromjson $ echo ${testJson} |jq '.Contact | tostring' "{\"Email\":\"weichuangxxb@qq.com\",\"QQ\":\"371990778\",\"WeChat\":\"GoOps\"}" $ echo ${testJson} |jq '.Contact | tostring | fromjson' { "Email": "weichuangxxb@qq.com", "QQ": "371990778", "WeChat": "GoOps" } ### @base64/@base64d $ echo ${testJson} |jq '.Contact | .QQ | @base64 | @base64d' "371990778" ### @uri $ echo ${testJson} | jq '.Skills[] | select(.name == "Ansible") | @uri "https://www.google.com/search?q=\(.name)"' "https://www.google.com/search?q=Ansible"
2.5 示例
# 通过接口返回数据进行过滤查找 curl -s http://goops.top:8080/vpc/api | jq '.returnData.detail[] | select(.ipType == 41)'
本文地址:百科问答频道 https://www.neebe.cn/wenda/942831_3.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!