JQ возникли проблемы с выходом из гипертонии в ключе верхнего уровня - PullRequest
0 голосов
/ 29 ноября 2018

Это мой json, который я пытаюсь просто проанализировать jq:

{
    "aaa-bbb-ccc": {
        "derp": blah
    }
}

Получение сообщения об ошибке:

cat myjson | jq -r .'aaa-bbb-ccc' 

jq: error: aaa/0 is not defined at <top-level>, line 1:
.aaa-bbb-ccc    
jq: error: bbb/0 is not defined at <top-level>, line 1:
.aaa-bbb-ccc           
jq: error: ccc/0 is not defined at <top-level>, line 1:

1 Ответ

0 голосов
/ 29 ноября 2018

Используя базовую форму для доступа к значению ключа, вы должны написать:

jq -r '.["KEYNAME"]'

, за исключением того, что в командной строке Windows вам придется возиться с кавычками (или поставить фильтр вфайл).

В современных версиях jq базовая форма может быть сокращена до ."KEYNAME".

Таким образом, предполагая, что ваш jq равен 1.5 или выше, вы можете написать (избегая cat):

jq -r '."aaa-bbb-ccc"' myjson 

Подробнее см. В jq FAQ .

...