Я получаю Cannot iterate over null (null)
из нижеследующего запроса, потому что .property_history
нет в result
объекте.Как проверить наличие «ключа» в jq перед итерацией по значениям
Как я могу проверить наличие ключа .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
}
]
}
}
есть ли основания для downvote? –
Я не голосовал, но, возможно, люди хотели увидеть «JSON», в котором вы пытаетесь это сделать. Без этого люди не смогут определить, действительно ли вы пытаетесь сделать это или нет. – Inian
@ Иниан, пожалуйста, зарегистрируйтесь сейчас –