Перебрать json в оболочке

У меня есть JSON, который начинается так (я отредактировал конец файла, чтобы закрыть открывающую скобку, чтобы сделать его действительным файлом):

{
"YRPLBn9VEgpB4pc": {
    "name": "Bright",
    "lights": [
        "8"
    ],
    "owner": "VHB3Xij-S9AfghoMDL6ccgCEOOE00Fs43nzBbNgR",
    "recycle": false,
    "locked": false,
    "appdata": {
        "version": 1,
        "data": "7prbY_r03_d05"
    },
    "picture": "",
    "lastupdated": "2018-07-24T12:51:03",
    "version": 2
},
"oRvYDYW6dMmGoUw": {
    "name": "Dimmed",
    "lights": [
        "8"
    ],
    "owner": "VHB3Xij-S9AfghoMDL6ccgCEOOE00Fs43nzBbNgR",
    "recycle": false,
    "locked": false,
    "appdata": {
        "version": 1,
        "data": "jBjTp_r03_d06"
    },
    "picture": "",
    "lastupdated": "2018-07-24T12:51:03",
    "version": 2
}
}

Он возвращается api Philips Hue Clip в ответ на запрос, запрашивающий все сцены, сохраненные на мосту.

Я хочу повторить это (в идеале в bash, но я открыт для предложений), чтобы получить элементы «YRPLBn9VEgpB4pc», «oRvYDYW6dMmGoUw» и т. д. Я знаю, как получить значения из пар ключей *, но я не Не совсем понимаю, что это за элементы - возможно, идентификаторы объектов?

* получить значение из "имени" с помощью jq:

for row in $(echo "${sample}" | jq -r '.[] | @base64'); do
    _jq() {
    echo ${row} | base64 --decode | jq -r ${1};
    };
    echo $(_jq '.name');
done

Думаю, вы ищете keys[].

Benjamin W. 24.07.2018 16:07

Спасибо. На самом деле keys_unsorted [] из дубликата - это то, что мне нужно.

Lorccan 24.07.2018 19:40
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
2
38
0

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