반응형
값을 반복하기 전에 jq에 'key'가 있는지 확인하는 방법
나는 이해한다Cannot iterate over null (null)
다음 질문에서 왜냐하면.property_history
에는 없습니다.result
물건.
의 존재를 확인하려면 어떻게 해야 합니까?.property_history
진행하기 전에 키를 누르다map(...)
?
이런 걸 써봤는데sold_year= `echo "$content" | jq 'if has("property_history") then map(select(.event_name == "Sold"))[0].date' else null end
원본 쿼리:
sold_year=`echo "$content" | jq '.result.property_history | map(select(.event_name == "Sold"))[0].date'`
JSON:
{
"result":{
"property_history":[
{
"date":"01/27/2016",
"price_changed":0,
"price":899750,
"event_name":"Listed",
"sqft":0
},
{
"date":"12/15/2015",
"price_changed":0,
"price":899750,
"event_name":"Listed",
"sqft":2357
},
{
"date":"08/30/2004",
"price_changed":0,
"price":739000,
"event_name":"Sold",
"sqft":2357
}
]
}
}
select-expression은 에서 사용할 수 있습니다.jq
성취하고자 하는 일을 할 수 있도록 하는 거죠
jq '.result
| select(.property_history != null)
| .property_history
| map(select(.event_name == "Sold"))[0].date'
기술적으로, 속성 존재 여부를 테스트하려면has/1
단, 현재 상황에서는 postfix를 사용하는 것이 좋습니다.?
연산자. 예:
$ jq '.result
| .property_history[]?
| select(.event_name == "Sold")
| .date'
"08/30/2004"
사용하다has("mykey1")
(개체의 경우) 또는has(0)
(어레이의 경우):
jq 'has("name")' <<< "{\"name\": \"hello\"}"
출력:
true
요령은 //를 빈칸과 함께 사용하는 것입니다.
jq '.result.property_history // empty | map(select(.event_name == "Sold"))[0:1][].date'
또 다른 방법은 다음과 같은 추가 선택을 사용하는 것입니다.
jq '.result.property_history | select(.) | map(select(.event_name == "Sold"))[0:1][].date'
일반 패턴:
try (...) // "default_value"
당신의 논리로:
jq 'try (.result.property_history | map(select(.event_name == "Sold"))[0].date) // "default_value"'
try
(캐치 없음) 표현에 실패하면 빈칸이 반환됩니다. //
에 값이 비어 있는 경우의 기본값을 나타냅니다.
언급URL : https://stackoverflow.com/questions/42097410/how-to-check-for-presence-of-key-in-jq-before-iterating-over-the-values
반응형
'programing' 카테고리의 다른 글
'문서 지향'과Key-Value는 MongoDB와 Cassandra에 대해 이야기할 때 의미합니까? (0) | 2023.02.28 |
---|---|
리액트 라이브러리의 리액트 후크에서 잘못된 후크 호출 오류가 발생함 (0) | 2023.02.28 |
플러그인과 함께 작동하도록 워드프레스 사용자 지정 테마를 수정하려면 어떻게 해야 합니까? (0) | 2023.02.28 |
NULL 값은 데이터베이스 검색 성능에 어떤 영향을 미칩니까? (0) | 2023.02.28 |
ASP.NET MVC의 Json 반환 결과? (0) | 2023.02.28 |