Така че прочетох 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"
Благодаря предварително.
Отговори:
0 за отговор № 1.matches.threatType
.matches
е масив, така че ще трябва да използвате []
за да го разширите, напр .:
.matches[].threatType
.threatType
Този опит може да бъде спасен чрез използване ..
, напр.
.. | .threatType? // empty
. [] | .threatType
Без коментар :-)
. [] | {type: .threatType}
Вероятно означавахте:
.matches[] | {type: .threatType}
послепис
Може да искате да използвате debug
за да помогнете за отстраняване на грешки / разбиране какво се случва.
Освен това, в бъдеще, моля, не забравяйте да опишете или покажете очакваната продукция.