加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

通过bash脚本来更改json文件

发布时间:2020-12-15 18:55:01 所属栏目:安全 来源:网络整理
导读:我需要你的帮助来解决以下问题: 我有一个JSON文件,如下所示: { "key1": "value1","key2": "value2","key3": "value3"} 如何通过bash脚本添加和删除新的密钥(即“key4”:“value4”)? 在添加或删除新文件之前,我还看到在文件中的最后一个键结尾处添加或删
我需要你的帮助来解决以下问题:
我有一个JSON文件,如下所示:
{
  "key1": "value1","key2": "value2","key3": "value3"
}

如何通过bash脚本添加和删除新的密钥(即“key4”:“value4”)?
在添加或删除新文件之前,我还看到在文件中的最后一个键结尾处添加或删除逗号的问题.

谢谢

你最好的办法是使用诸如 jq之类的JSON CLI:

>在基于Ubuntu的Debian系统上,您可以通过sudo apt-get install jq安装它
>在OSX上,安装了Homebrew(http://brew.sh/),使用brew install jq

示例,基于以下输入字符串 – 输出是stdout:

jsonStr='{ "key1": "value1","key3": "value3" }'

删除“key3”:

jq 'del(.key3)' <<<"$jsonStr"

添加属性“key4”,值为“value4”:

jq '. + { "key4": "value4" }' <<<"$jsonStr"

将现有属性“key1”的值更改为“new-value1”:

jq '.key1 = "new-value1"' <<<"$jsonStr"

如果要在现场更新JSON文件(概念上讲),请使用删除“key3”的示例:

# Create test file.
echo '{ "key1": "value1","key3": "value3" }' > test.json

# Remove "key3" and write results back to test.json (recreate it with result).
jq -c 'del(.key3)' test.json > tmp.$$.json && mv tmp.$$.json test.json

您无法直接替换输入文件,因此将结果写入临时文件,成功替换输入文件.

注意-c选项,它生成紧凑而不是漂亮的JSON.

有关所有选项和命令,请参阅http://stedolan.github.io/jq/manual/的手册.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读