centos7 安装jq解析json

内容目录

需求

需求的产生是因为公司一个接口返回的是json
游戏服启动是容器启动,有时候合服,数据库名就变了,要从接口获取数据库名

安装jq

#安装EPEL源(这一步可以省略):
yum install epel-release -y

#安装完EPEL源后,可以查看下jq包是否存在
yum list jq

#安装jq
yum install jq -y

shell命令实现

然后从openapi容器接口返回 筛选 server id获取数据库名

curl 获取接口返回 |管道到jq 获取dbName 再|管道到sed过滤json的"号特殊符号

 dbName=$( curl http://openapi:4050/gameServer/Serializable|jq '.[] | select (.server >=  "'${kserid}'" and .server <= "'${kserid}'") | .dbName'|sed 's#"##g' )

由于jq筛选条件’.[] | select (.server="’${kserid}’")’ 不支持=号条件,会返回所有内容,所以取巧>= and <= 了
发现了 是用==
命令改为

 dbName=$( curl http://openapi:4050/gameServer/Serializable|jq '.[] | select (.server == "'${kserid}'") | .dbName'|sed 's#"##g' )

网络上其他的jq命令详解

这一篇挺全的
https://blog.csdn.net/weixin_44799217/article/details/131493398

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注