/ / jq - не може да извлече ключови стойности от google safebrowsing json отговор - json, jq, безопасно сърфиране

jq - не може да извлече ключови стойности от google safebrowsing json отговор - json, jq, безопасно сърфиране

Така че прочетох 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 за да помогнете за отстраняване на грешки / разбиране какво се случва.

Освен това, в бъдеще, моля, не забравяйте да опишете или покажете очакваната продукция.