2016-12-17 2 views
1

의 값을 기준으로 중첩 된 오브젝트를 제외합니다 : 나는 show_id이 같지 1641788 않는 경우 모든 개체를 반환 '라고하는 필터를 찾고 있어요JQ 필터를 찾고이 입력을 감안할 때 중첩 특성

{ 
    "10000703": { 
    "show_id": 1641788, 
    }, 
    "10000838": { 
    "show_id": 1517903, 
    }, 
    "10001325": { 
    "show_id": 1641788, 
    }, 
} 

"

예상 출력은 다음과 같습니다

{ 
    "10000838": { 
    "show_id": 1517903, 
    }, 
} 

중첩 된 객체 :(

을 배제 할 수 없었다
+1

Q를 : 당신은 무엇을 시도? – paulsm4

+0

나는'walk/1'과'del()'과 관련된 많은 것들을 시도했지만'with_entries/1'은 내가 필요로하는 것입니다. –

답변

1

with_entries/1의 편의를 보여주는 좋은 예이며, JQ와 가능성이 짧음의 :

with_entries(select(.value.show_id != 1641788)) 

with_entries/1 명시 적 .KEY/.value 표현으로 개체를 변환합니다. 자세한 내용은 jq manual을 참조하십시오.

는 다른 방법과 더욱 간결에, 하나는이 경우에도 del/1 사용할 수 있습니다

del(.[] | select(.show_id == 1641788))