Ich möchte mit jq ein Array mit Elementen und Wert in eine vorhandene JSON-Datei einfügen.
Ich habe bereits eine Datei (input.json) mit
{
"id": 9,
"version": 0,
"lastUpdTs": 1532371267968,
"name": "Training"
}
Ich möchte dies in ein anderes Gruppenarray in diesem json (orig.json) hinzufügen.
[
{
"name": "JAYS",
"sourceConnection": {
"name": "ORACLE_connection",
"connectionType": "JDBC",
"commProtocol": "JDBC"
},
"checked": true,
"newlyAdded": false,
"id": null,
"groups": [],
"displayName": "SCOTT",
"defaultLevel": "MANAGED"
}
]
Das Endergebnis sollte so aussehen
[
{
"name": "JAYS",
"sourceConnection": {
"name": "ORACLE_connection",
"connectionType": "JDBC",
"commProtocol": "JDBC"
},
"checked": true,
"newlyAdded": false,
"id": null,
"groups": [
{
"id": 9,
"version": 0,
"lastUpdTs": 1532371267968,
"name": "Training"
}
],
"displayName": "SCOTT",
"defaultLevel": "MANAGED"
}
]
Ich weiß, wie man einem Array Elemente hinzufügt, bin mir aber nicht sicher, wie ich aus einer Datei übergeben soll.
jq '.[].groups += [{"INPUT": "HERE"}]' ./orig.json
$(<file)
eine ksh / bash / zsh-Erweiterung ist und ansonsten nicht portabel ist. Sie könntencat
stattdessen verwenden.