別のJSONファイル(main.json)の2行目に、次のJSONフラグメント(インデントとすべてを含む)を追加したいと思います。
追加するJSONフラグメント
"extendedProperties": {
"AppID": {
"values": [
"12345"
]
}
方法
- 変数にスニペットを追加します(例:snippet =
cat toAddintoConnection.txt
- 正確にテストされ
echo "$snippet"
リストされています(インデントを含む) sed '$i"$snippet"' main.json
- その結果、"$snippet"
2行目から最後の行まで文字通り印刷されます。
ご指導ありがとうございます。ありがとうございます。プラカシ
答え1
JSONドキュメントでは、インデント、改行、キーと値の間のその他のスペースは重要ではありません。また、キーの順序は重要ではありません。
以下を使用して、jq
コマンドラインから追加の最上位キーとその値を追加します。
jq '.extendedProperties = { AppID: { values: [ "12345" ] } }' main.json
AppID
シェル変数から文字列を取得します。
id=12345
jq --arg AppID "$id" '.extendedProperties = { AppID: { values: [ $AppID ] } }' main.json
ファイルからデータを追加するためにtoAddintoConnection.txt
正しい形式のJSONドキュメントを追加するとします。
{
"extendedProperties": {
"AppID": {
"values": [
"12345"
]
}
}
}
または等しく、
{"extendedProperties":{"AppID":{"values":["12345"]}}}
main.json
...次のように既存のJSON文書に追加できます。
jq -s 'add' main.json toAddintoConnection.txt