我想将以下 JSON 片段(带有缩进和所有内容)添加到另一个 JSON 文件(main.json)的倒数第二行。
要添加的 JSON 片段
"extendedProperties": {
"AppID": {
"values": [
"12345"
]
}
方法
- 将片段添加到变量中,例如,snippet=
cat toAddintoConnection.txt
- 经过测试
echo "$snippet"
并准确列出(带有缩进) sed '$i"$snippet"' main.json
- 结果是它"$snippet"
按字面意思打印在倒数第二行。
非常感谢您的指导。谢谢。普拉卡什
答案1
请注意,键和值之间的缩进、换行符和其他空格在 JSON 文档中并不重要。此外,键的顺序并不重要。
使用jq
,从命令行添加额外的顶级键及其值:
jq '.extendedProperties = { AppID: { values: [ "12345" ] } }' main.json
从AppID
shell 变量中获取字符串:
id=12345
jq --arg AppID "$id" '.extendedProperties = { AppID: { values: [ $AppID ] } }' main.json
要从文件添加数据,假设要toAddintoConnection.txt
添加格式正确的 JSON 文档,例如
{
"extendedProperties": {
"AppID": {
"values": [
"12345"
]
}
}
}
或者,等价地,
{"extendedProperties":{"AppID":{"values":["12345"]}}}
...您可以将其添加到预先存在的 JSON 文档中,main.json
如下所示:
jq -s 'add' main.json toAddintoConnection.txt