jq - не удается извлечь ключевые значения из безопасного ответа Google json
Итак, я прочитал jq
учебник и играл с github
json
ответы оттуда и извлекли некоторые значения некоторых других ключей, так что я думаю, что я понимаю, как работает синтаксис. К сожалению, ничего не работает при попытке использовать его в Google safe-browsing
json
ответ. Вот полный ответ, сохраненный в переменной (сделал то же самое для примеров GitHub из jq
руководство):
echo "$safeb"
{
"matches": [
{
"threatType": "MALWARE",
"platformType": "ALL_PLATFORMS",
"threat": {
"url": "http://www.wittyvideos.com"
},
"cacheDuration": "300s",
"threatEntryType": "URL"
}
]
}
... и вот что я попробовал:
echo "$safeb" | jq '.matches.threatType'
jq: error (at <stdin>:13): Cannot index array with string "threatType"
echo "$safeb" | jq '.threatType'
null
echo "$safeb" | jq '.[] | .threatType'
jq: error (at <stdin>:13): Cannot index array with string "threatType"
echo "$safeb" | jq '.[] | {type: .threatType}'
jq: error (at <stdin>:13): Cannot index array with string "threatType"
Заранее спасибо.
1 ответ
.matches.threatType
.matches
это массив, так что вам придется использовать []
расширить его, например:
.matches[].threatType
.threatType
Эта попытка может быть спасена с помощью ..
например,
.. | .threatType? // empty
.[] | .threatType
Без комментариев:-)
. [] | {type:.threatType}
Вы, вероятно, имели в виду:
.matches[] | {type: .threatType}
п.с.
Вы можете использовать debug
чтобы помочь отладить / понять, что происходит.
Кроме того, в будущем, пожалуйста, не забудьте описать или показать ожидаемый результат.