2017-05-11 3 views
2

In Cloud-BigQuery, das akzeptierte JSON-Format erscheint, ist:Machen Sie einen (Teil-) JSON-Objekt in einer Zeile von jq

Ein JSON-Objekt, einschließlich verschachtelter/wiederholte Felder, auf jeder Zeile erscheinen.

beziehen sich auf: https://cloud.google.com/bigquery/data-formats#json_format

, nun ein json gegeben:

{ 
    "1": { 
    "kind": "person", 
    "fullName": "John Doe", 
    "age": 22, 
    "gender": "Male", 
    "citiesLived": [ 
     { 
     "place": "Seattle", 
     "numberOfYears": 5 
     }, 
     { 
     "place": "Stockholm", 
     "numberOfYears": 6 
     } 
    ] 
    }, 
    "2": { 
    "kind": "person", 
    "fullName": "Jane Austen", 
    "age": 24, 
    "gender": "Female", 
    "citiesLived": [ 
     { 
     "place": "Los Angeles", 
     "numberOfYears": 2 
     }, 
     { 
     "place": "Tokyo", 
     "numberOfYears": 2 
     } 
    ] 
    } 
} 

Wie es in den von jq folgende Format konvertieren?

{"kind": "person", "fullName": "John Doe", "age": 22, "gender": "Male", "citiesLived": [{ "place": "Seattle", "numberOfYears": 5}, {"place": "Stockholm", "numberOfYears": 6}]} 
{"kind": "person", "fullName": "Jane Austen", "age": 24, "gender": "Female", "citiesLived": [{"place": "Los Angeles", "numberOfYears": 2}, {"place": "Tokyo", "numberOfYears": 2}]} 

Antwort

3

Der Schlüssel hier ist die Option "-c", die jq sagt, dass sie das Ausgabeformat JSONLines verwenden soll.

In Ihrem speziellen Fall ist die Lösung einfach:

jq -c '.[]' 

Ihre Shell Sie die Anführungszeichen :-)

fallen könnte sogar erlauben
Verwandte Themen