通过bash脚本来更改json文件

前端之家收集整理的这篇文章主要介绍了通过bash脚本来更改json文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要你的帮助来解决以下问题:
我有一个JSON文件,如下所示:
{
  "key1": "value1","key2": "value2","key3": "value3"
}

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

谢谢

@H_301_9@
@H_301_9@
你最好的办法是使用诸如 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/的手册.

@H_301_9@

猜你在找的Bash相关文章