wget -O jq https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64
chmod +x ./jq
cp jq /usr/bin
{
"GDP": "high",
"china": [{
"GuangDong": [{
"GDP": "high",
"ShenZhen": [{
"GDP": "high",
"name": "NanShan"
}]
}],
"GDP": "high"
}]
}
wget -O jq https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64
chmod +x ./jq
cp jq /usr/bin
echo '{"GDP":"high","china":[{"GuangDong":[{"GDP":"high","ShenZhen":[{"GDP":"high","name":"NanShan"}]}],"GDP":"high"}]}' > test.json
# 查看整个json
jq -r '.' test.json
# xpath查找某个路径下的值
jq -r '.china[0].GuangDong' test.json
jq -r '.china[0].GuangDong[0].GDP' test.json
# 修改某个值(修改某个节点值,插入不存在的节点,插入一段json)
jq '.china[0].GuangDong[0].GDP="low"' test.json
jq '.china[0].GuangDong[0]={}' test.json
jq '.china[0].GuangDong[0].area=99999' test.json
jq '.china[0].GuangDong[0].area=[{"east":"big"},{"north":"big"}]' test.json
# jq不会把输出结果直接写到文件,所以 > 符号写入到中间文件,然后 mv 替换原来的文件
# jq通过 > 符号把结果写到文件时,不能直接写到原来文件(这样子原来文件会变成空白文件,可能是jq这个工具不允许在执行命令是修改源文件)
cat test.json
jq '.china[0].GuangDong[0].GDP="low"' test.json > test1.json
mv test1.json test.json
cat test.json