jq: 다른 필드에 대한 제약 조건을 사용하여 json 파일을 구문 분석합니다.

jq: 다른 필드에 대한 제약 조건을 사용하여 json 파일을 구문 분석합니다.

이 질문을 확장하면 다음과 같습니다.문자열의 일부만 유지하면서 JSON 값의 문자열을 결합하는 방법은 무엇입니까? 위에 링크된 출력에는 "name"다음 folder유형도 포함되어 있으므로 제외해야 합니다 "type".

           "date_added": "13170994909893393",
           "date_modified": "13184204204228233",
           "id": "2098",
           "name": "ElasticSearch",
           "sync_transaction_version": "1",
           "type": "folder"

무시할 경우 "type"동일한 객체의 필드 만 가져오는 방법 :"url"

출력에 포함될 유효한 패턴:

           "type": "url",
           "url": "https://url_here"

답변1

객체 배열이 주어지면 를 jq사용하여 특정 기준을 충족하는 객체를 선택할 수 있습니다 select().

사용해보시면 좋을 것 같습니다

.array[] | select(.type == "url")

예를 들어 JSON 문서가 주어지면

{ "array": [ { "type": "folder", "name": "example folder" },
             { "type": "url",    "name": "example url"    } ] }

위의 쿼리는 반환됩니다

{
  "type": "url",
  "name": "example url"
}

관련 정보