|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] BASH - парсинг JSON |
|
Любой язык - [решено] BASH - парсинг JSON
|
Старожил Сообщения: 415 |
Всем привет!
С помощью bash скрипта обращаюсь к API и получают ответ в формате JSON Ответ в формате JSON
{
"meta": { "query_time": 0.162813486, "pagination": { "offset": 0, "limit": 100, "total": 11 }, "powered_by": "reports", "trace_id": "b51df724-6ed1-4636-822e-4cce18d934c9" }, "resources": [ "008a7304b0d642878ebc9c8067d5eaa5", "07ec9c1e34c8446c82d299d294d4f2c6", "1e63584b95304437a82639543ce9cdda", "69ad97b63b574136be8b543f69f162cd", "e31275236df543388ab3f58f5ed1fd5e", "f6f9dc925c7342d5b7bfb6ed218b3a71", "fd6e963230354e34b21bc9ada60b13dd", "aedaba4be84b48a3be585a5f24ea911f", "5aa135b264e648e29aa440c7e02c1d0b", "efc44841194b40809f9427ca5d466cd2", "50d410420e064b908144204045a68336" ], "errors": [] } В таком ответе в resources может быть разное количество ID-шников (от 1 до 31). Надо с помощью bash распрасить так, чтобы всегда получать первый ID в этом ответе. То есть получить 008a7304b0d642878ebc9c8067d5eaa5 Начал гуглить и столкнулся с тем, что не смог найти примеры парсинга массива. Есть много примеров парсинга отдельной строки, но в данном случае это не подходит. Если у кого есть примеры, поделитесь пожалуйста. |
|
Отправлено: 21:30, 14-03-2022 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать Нашел решение. Нужно использовать JQ. В итоге после API запроса добавить обращение к первому элементу в массиве:
MY_API_REQUEST | jq '.resources[0]' Кстати, при получении элемента массива он возвращается с кавычками. Можно их убрать вот такой конструкцией MY_API_REQUEST | jq '.resources[0]' | sed -e "s/^.\{,1\}//;s/.\{,1\}$//" С помощью sed убираем первый и последний символ строки. |
Отправлено: 22:13, 14-03-2022 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 250
|
Профиль | Отправить PM | Цитировать читатйте хелп jq у его есть полезные флаги чтобы убрать кавычки из выдачи
|
Отправлено: 03:19, 15-03-2022 | #3 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать Действительно есть такое. Оказывается можно использовать -r для обрезания кавычек
MY_API_REQUEST | jq -r '.resources[0]' Теперь появилась еще одна задача - нужно определить последний элемент в массиве. Кто может подсказать, как это сделать? Наверное нужно посчитать количество элементов в массиве и потом обращаться к последнему. Но как это сделать, не пойму никак. |
Отправлено: 22:19, 15-03-2022 | #4 |
Старожил Сообщения: 250
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 03:28, 16-03-2022 | #5 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать Цитата Serguei Kouzmine:
|
|
Отправлено: 07:48, 18-03-2022 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Нужна помощь с парсингом JSON | Apock | Программирование и базы данных | 3 | 28-03-2019 11:35 | |
PowerShell - Запрос json методом POST | LaFleur | Скриптовые языки администрирования Windows | 2 | 20-09-2018 20:05 | |
2010 - json to эксель | Elizavetta | Microsoft Office (Word, Excel, Outlook и т.д.) | 3 | 20-07-2017 01:13 | |
Любой язык - JSON: settings.json в Visual Studio Code прокси | jkadaba | Скриптовые языки администрирования Windows | 0 | 14-04-2017 08:10 | |
Java - Spring(Jackson) переопределить парсинг JSON | Killer_13 | Программирование и базы данных | 0 | 07-02-2012 21:38 |
|