2017-05-11 2 views
2

으로 한 줄에 나타나는 위해선, 허용 JSON 형식은 각 행에 표시해야하는 중첩/반복 필드를 포함한 (하위) JSON 객체가 클라우드 BigQuery에서 JQ

한 JSON 객체는,.

{ 
    "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 
     } 
    ] 
    } 
} 

어떻게 jq에 의해 다음으로 변환하려면 다음 JSON 주어진 지금 https://cloud.google.com/bigquery/data-formats#json_format

:

은 참조?

{"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}]} 

답변

3

여기서 핵심은 "-c"옵션으로 jq가 JSONLines 출력 형식을 사용하도록 지시합니다. 특정 경우

는, 해결책은 간단하다 :

jq -c '.[]' 

심지어

:-) 인용 부호를 드롭 할 수 있습니다 귀하의 쉘