2017-05-13 6 views
1

Ich möchte ein Elternteil zu jedem der JSON-Objekte innerhalb einer Datei hinzufügen. Mein Ausgangspunkt ist die folgende JSON-Datei enthält zwei json Artikel:Hinzufügen von Elternelement zu JSON-Objekten mit jq/bash

{ 
    "id": { 
    "S": "cf7ebec368f241ead7ecf818ce9ed098406afa63" 
    }, 
    "test": { 
    "N": "5" 
    }, 
    "added": { 
    "S": "2017-02-15T17:56:19.958917+00:00" 
    }, 
    "foo": { 
    "N": "88" 
    }, 
    "web": { 
    "N": "103" 
    } 
} 
{ 
    "id": { 
    "S": "cf7ebec368f241ead7ecf818ce9ed098406afa63" 
    }, 
    "image_server_id": { 
    "N": "5" 
    }, 
    "added": { 
    "S": "2017-02-15T17:56:19.958917+00:00" 
    }, 
    "result": { 
    "N": "88" 
    }, 
    "data": { 
    "foo": { 
     "N": "103", 
     "S": "test" 
    } 
    } 
} 

Mit jq und/oder bash ich die folgende JSON-Datei erzeugen möchten:

{ 
    "*StaticString*": [ 
    { 
     "PutRequest": { 
      "Item": { 
       "id": { 
       "S": "cf7ebec368f241ead7ecf818ce9ed098406afa63" 
       }, 
       "test": { 
       "N": "5" 
       }, 
       "added": { 
       "S": "2017-02-15T17:56:19.958917+00:00" 
       }, 
       "foo": { 
       "N": "88" 
       }, 
       "web": { 
       "N": "103" 
       } 
      **} 
     } 
    }, 
    { 
     "PutRequest": { 
      "Item": { 
       "id": { 
       "S": "cf7ebec368f241ead7ecf818ce9ed098406afa63" 
       }, 
       "image_server_id": { 
       "N": "5" 
       }, 
       "added": { 
       "S": "2017-02-15T17:56:19.958917+00:00" 
       }, 
       "result": { 
       "N": "88" 
       }, 
       "data": { 
       "foo": { 
        "N": "103", 
        "S": "test" 
       } 
       } 
      **} 
     } 
    } 
    ] 
    } 

Zusammengefasst möchte ich hinzufügen

{ 
"StaticString": [ 
{ 

am Anfang der Datei. Dann brauche ich in einen Elternteil aus dem json Artikel

"PutRequest": { 
      "Item": { 
      ... 
      } 
    } 

und erzeugen ein Array jedes json Element zu setzen.

ich bereits zu wissen, wie ein Array der json Elemente zu erzeugen, mit jq -s . testfile.json Aber ich weiß nicht, wie ein Elternteil zu jedem json Elemente hinzuzufügen.

Ich hoffe, es ist klar, was ich erreichen möchte.

Dankten für Ihre Hilfe, Chris

Antwort

0

Versuchen

  •  
    jq -s '{staticstring:[{PutRequest:{Item:.[]}}]}' inputfile.json

+0

Dankten! Es funktioniert super :) – bsj4sla

Verwandte Themen