2016-07-25 16 views
0

hinzufügen Ich verwende jq, um eine JSON-Datei zu analysieren. Ich habe einige Abschnitt von JSON-Datei mit folgenden InhaltWie Abschnitt von Json zu der vorhandenen Datei mit jq

[ 
    { 
    "PropagateAtLaunch": true, 
    "Value": { 
     "Ref": "TNAM" 
    }, 
    "Key": "Name" 
    }, 
    { 
    "PropagateAtLaunch": true, 
    "Value": { 
     "Ref": "TAPP" 
    }, 
    "Key": "application" 
    }, 
    { 
    "PropagateAtLaunch": true, 
    "Value": { 
     "Ref": "TENV" 
    }, 
    "Key": "environment" 
    }, 
    { 
    "PropagateAtLaunch": true, 
    "Value": { 
     "Ref": "TSHA" 
    }, 
    "Key": "shared" 
    }, 
    { 
    "PropagateAtLaunch": true, 
    "Value": { 
     "Ref": "TTER" 
    }, 
    "Key": "tier" 
    }, 
    { 
    "PropagateAtLaunch": true, 
    "Value": { 
     "Ref": "CostCenter" 
    }, 
    "Key": "cost-center" 
    } 
] 

In diesem Ich mag einen anderen Abschnitt hinzufügen möchten:

{ 
    "Value": { 
    "Ref": "TEAM" 
    }, 
    "PropagateAtLaunch": true, 
    "Key": "TEAM" 
} 

Wie kann ich diesen neuen Abschnitt hinzufügen?

Dies ist die Abfrage, die ich verwendet habe, den ersten Abschnitt zu extrahieren:

$ cat ABC.json | jq '.Resources.ASGRP.Properties.Tags' 

Antwort

3

Sie das Objekt als jq Variable übergeben kann --argjson verwenden, dann +=, um das Objekt zu dem Array hinzufügen:

jq --argjson obj '{"sample": "object"}' '.Resources.ASGRP.Properties.Tags += [$obj]' 

Wenn Sie + stattdessen nicht das ursprüngliche Objekt möchten, verwenden Sie von +=.

+0

Danke Santiago. Dies hat mir auch bei einer anderen Anwendungsfall-Implementierung geholfen. –

1

Versuchen Sie, diese „jq -s add ABC.json add.json“, wie unten;

[email protected]:/tmp$ cat add.json 
[ 
{ 
    "Value": { 
    "Ref": "TEAM" 
    }, 
    "PropagateAtLaunch": true, 
     "Key": "TEAM" 
    } 
] 
[email protected]:/tmp$ jq -s add ABC.json add.json > ABCLAST.json 
[email protected]:/tmp$ cat ABCLAST.json 
[ 
    { 
    "PropagateAtLaunch": true, 
    "Value": { 
     "Ref": "TNAM" 
    }, 
    "Key": "Name" 
    }, 
    { 
    "PropagateAtLaunch": true, 
    "Value": { 
     "Ref": "TAPP" 
    }, 
    "Key": "application" 
    }, 
    { 
    "PropagateAtLaunch": true, 
    "Value": { 
     "Ref": "TENV" 
    }, 
    "Key": "environment" 
    }, 
    { 
    "PropagateAtLaunch": true, 
    "Value": { 
     "Ref": "TSHA" 
    }, 
    "Key": "shared" 
    }, 
    { 
    "PropagateAtLaunch": true, 
    "Value": { 
     "Ref": "TTER" 
    }, 
    "Key": "tier" 
    }, 
    { 
    "PropagateAtLaunch": true, 
    "Value": { 
     "Ref": "CostCenter" 
    }, 
    "Key": "cost-center" 
    }, 
    { 
    "PropagateAtLaunch": true, 
    "Value": { 
     "Ref": "TEAM" 
    }, 
    "Key": "TEAM" 
    } 
] 
+0

Danke Dogru. Das hat mir sehr geholfen. –