JQ возникли проблемы с выходом из гипертонии в ключе верхнего уровня

Это мой 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 ответ

Решение

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

jq -r '.["KEYNAME"]'

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

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

Итак, предполагая, что ваш JQ 1,5 или более поздней, вы можете написать (избегая cat):

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

Для получения дополнительной информации см. FAQ по jq.

Другие вопросы по тегам