brame
@brame
Специалист отдела эксплуатации

Как сделать парсер json c помощью curl?

Написал запрос curl, который по замыслу должен отдавать значение определенного параметра json:
curl --digest -L -D - --user login:password --header "Content-Type: application/json" "http://hostname/management/subsystem/datagrid-infinispan/cache-container/keycloak/distributed-cache/clientSessions?operation=resource&include-runtime=true&json.pretty=1" | jq -r '."number-of-entries-in-memory"'

При выполнении получаю ошибку:
parse error: Invalid numeric literal at line 1, column 9


Есть подозрение, что jq смущает отсутствие {}, т.к. он по идеи должен искать значения в этих фигурных скобках (json всё-таки), а при выполнение запроса курла, в терминал вываливаются хедеры перед и после авторизации. Пришёл к такому мнению, т.к. если писать json в файл, то такой ошибки нет:
curl --digest -L -D - --user login:password --header "Content-Type: application/json" "http://hostname/management/subsystem/datagrid-infinispan/cache-container/keycloak/distributed-cache/clientSessions?operation=resource&include-runtime=true&json.pretty=1" -o result.json && jq -r '."number-of-entries-in-memory"' result.json

Вопрос: как сделать курл запрос, чтобы после авторизации (--digest -L -D) не лилась инфа в терминал о хедере? Или единственный вариант писать json в файл? :(
  • Вопрос задан
  • 977 просмотров
Решения вопроса 1
Проблема у вас в -D -
curl -s --digest -L --user login:password --header "Content-Type: application/json" "http://hostname/management/subsystem/datagrid-infinispan/cache-container/keycloak/distributed-cache/clientSessions?operation=resource&include-runtime=true&json.pretty=1" | jq -r '."number-of-entries-in-memory"'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы