网站首页 > 博客文章 正文
0x00 jq介绍
jq是一个轻量级的灵活的处理json对象的命令。支持linux、windows。
0x01 二进制安装
wget -O jq https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64
chmod +x ./jq
cp jq /usr/bin
0x02 使用yum安装
yum -y install epel-release
yum -y install jq
0x03 使用
1、格式化输出
curl http://ip.taobao.com/service/getIpInfo.php?ip=8.8.8.8 2>> /dev/null | jq
{
"code": 0,
"data": {
"ip": "8.8.8.8",
"country": "美国",
"area": "",
"region": "XX",
"city": "XX",
"county": "XX",
"isp": "Level3",
"country_id": "US",
"area_id": "",
"region_id": "xx",
"city_id": "xx",
"county_id": "xx",
"isp_id": "200053"
}
}
2、获取指定字段的数据
curl http://ip.taobao.com/service/getIpInfo.php?ip=8.8.8.8 2>> /dev/null | jq -r '.code,.data.ip,.data.country'
0
8.8.8.8
美国
3、提取指定的字段保存成csv文件
curl http://ip.taobao.com/service/getIpInfo.php?ip=8.8.8.8 2>> /dev/null | jq -r '[(.code|tostring),.data.ip,.data.country]|join(",")'
0,8.8.8.8,美国
注释:
.code|tostring:取code字段的值并转化为string类型
[]:数组
join(","):数组中的元素通过","连接。
4、csv转换成json字符串
cat /tmp/1.csv
0,8.8.8.8,美国
0,8.8.8.7,美国
0,8.8.2.7,美国
0,81.8.2.7,土耳其
jq -R 'split(",")|{"code":.[0],"ip":.[1],"country":.[2]}' /tmp/1.csv
{
"code": "0",
"ip": "8.8.8.8",
"country": "美国"
}
{
"code": "0",
"ip": "8.8.8.7",
"country": "美国"
}
{
"code": "0",
"ip": "8.8.2.7",
"country": "美国"
}
{
"code": "0",
"ip": "81.8.2.7",
"country": "土耳其"
}
5、 -c/--compact-output:jq 默认是pretty-prints JSON 输出,加上这个参数,一行一个json对象。
jq -R -c 'split(",")|{"code":.[0],"ip":.[1],"country":.[2]}' /tmp/1.csv
{"code":"0","ip":"8.8.8.8","country":"美国"}
{"code":"0","ip":"8.8.8.7","country":"美国"}
{"code":"0","ip":"8.8.2.7","country":"美国"}
{"code":"0","ip":"81.8.2.7","country":"土耳其"}
6、复杂json查询
complexJson='{"uid":"777","nameInfo":[{"firstName":"Jim","lastName":"Green"},{"firstName":"Lei","lastName":"Li"}]}'
echo ${complexJson} |jq
{
"uid": "777",
"nameInfo": [
{
"firstName": "Jim",
"lastName": "Green"
},
{
"firstName": "Lei",
"lastName": "Li"
}
]
}
echo ${complexJson} |jq -r '.nameInfo[].lastName'
结果:
Green
Li
注释:
.nameInfo[].lastName是获取.nameInfo[] json array中每个json object的lastName字段。
猜你喜欢
- 2024-09-18 PHP 解决json中文自动转换Unicode编码问题
- 2024-09-18 解锁数据存储的新维度:探索 PostgreSQL 中的JSON和数组特性!
- 2024-09-18 php读取数据库数据,并以json格式返回数据
- 2024-09-18 超详细的mysql数据库json字段类型语法大全
- 2024-09-18 从零学编程-JSON处理(json怎么学)
- 2024-09-18 灵活导出:如何将Excel数据转换为JSON对象格式
- 2024-09-18 如何把destoon数据生成json(如何在excel中随机生成一定范围内的数据)
- 2024-09-18 JSON概念(json基础知识)
- 2024-09-18 php返回json数据中文显示的问题(php返回json数据中文显示的问题怎么解决)
- 2024-09-18 javascript把二维数组转为json格式的字符串代码
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)