큰 데이터 집합으로 작업하고 있는데, 관심있는 데이터 만 포함하는 개체를 생성하는 데 JQ를 사용하고 있습니다. 문제를 설명하기 위해 샘플 데이터를 제공했습니다.JQ 개체에 배열 삽입
지금까지 2 객체 또는 2 배열을 추가하는 방법을 찾았지만 플랫 필드 집합을 가져 와서 배열을 기본 json에 대한 subObject로 추가하려고합니다.
tmpData.txt 지금까지
{
"id": "0001",
"type": "donut",
"name": "Cake",
"ppu": 0.55,
"batter": [{
"id": "1001",
"type": "Regular",
"status":{
"complete": false
}
},
{
"id": "1002",
"type": "Chocolate",
"status":{
"complete": false
}
},
{
"id": "1003",
"type": "Blueberry",
"status":{
"complete": false
}
},
{
"id": "1004",
"type": "Devil's Food",
"status":{
"complete": false
}
}
]
}
, 내가 온 가장 가까운 단지 1 시간을 최상위 수준 필드를 출력이
cat tmpData.txt | jq '[{id, type}] + [(.batter[] | {batterId: .id, complete: .status.complete})]'
이지만, 각각의 타자는 자신의 개체입니다입니다 이 전체 출력을 1 개체로해야합니다.
[
{
"id": "0001",
"type": "donut"
},
{
"batterId": "1001",
"complete": false
},
{
"batterId": "1002",
"complete": false
},
{
"batterId": "1003",
"complete": false
},
{
"batterId": "1004",
"complete": false
}
]
내 이상적인 출력과 같을 것이다 다음
{
"id": "0001",
"type": "donut",
"batter": [{
"id": "1001",
"complete": false
},
{
"id": "1002",
"complete": false
},
{
"id": "1003",
"complete": false
},
{
"id": "1004",
"complete": false
}]
}
당신은 내가 알아야 할 모든 것을 포함 한 단일 개체가 볼 수 있으며, 중복 또는 불필요한 데이터가 없기 때문에 . ID와 상태를 가진 타자 배열이 포함 된 단일 개체를 출력하고 싶습니다.
에 대해 작동으로 표현 될 것입니다 방법하시기 바랍니다 질문을 편집하여 질문을 짧고, 명확하고, 일관성 있고, 완전하게 만드십시오. 예를 들어 "이상적인 출력"은 잘립니다. 또한 "이상적인 출력"의 .batter 배열에는 {id : _, complete : _} 형식의 요소가 있지만 시도에는 "batterId"및 "status"가 있습니다. – peak
@ 피크 감사합니다. 질문을 명확하게 수정하고 필터를 수정했습니다. 나는 네가 내 마지막 질문에 대답했다고 믿는다. – Goldfish
명확성을 위해 단축 된 질문 – Goldfish