将 JSON 片段添加到倒数第二行

将 JSON 片段添加到倒数第二行

我想将以下 JSON 片段(带有缩进和所有内容)添加到另一个 JSON 文件(main.json)的倒数第二行。

要添加的 JSON 片段

"extendedProperties": {
        "AppID": {
          "values": [
            "12345"
          ]
        }

方法

  1. 将片段添加到变量中,例如,snippet=cat toAddintoConnection.txt
  2. 经过测试echo "$snippet"并准确列出(带有缩进)
  3. sed '$i"$snippet"' main.json- 结果是它"$snippet"按字面意思打印在倒数第二行。

非常感谢您的指导。谢谢。普拉卡什

答案1

请注意,键和值之间的缩进、换行符和其他空格在 JSON 文档中并不重要。此外,键的顺序并不重要。

使用jq,从命令行添加额外的顶级键及其值:

jq '.extendedProperties = { AppID: { values: [ "12345" ] } }' main.json

AppIDshell 变量中获取字符串:

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

相关内容