Monkey Place

Batch: как из JSON получить переменную?

Введение

Batch-скрипты применяются для автоматизации рутинных задач на Windows-компьютерах. Вся мощь синтаксиса батников заключается в возможности взаимодействия с операционной системой, в том числе и с использованием JSON.

JSON – это формат обмена данными, который является основным для передачи информации в HTTP-запросах, таких как AJAX. Когда мы отправляем запрос на сервер и ожидаем ответа в формате JSON, вопрос состоит в том, как извлечь переменные из ответа и использовать их в нашем Batch-скрипте.

Шаг 1: Получение данных

Первым шагом является получение данных в формате JSON. Для того чтобы получить ответ от сервера в этом формате, можно использовать утилиту curl. Допустим, мы отправляем запрос на сервер и ожидаем словарь, содержащий переменные "foo" и "bar". Данный запрос можно отправить следующей командой:

curl -s http://example.com/data.json > data.json

Эта команда отправляет запрос на example.com и записывает ответ в файл data.json.

Шаг 2: Извлечение переменных

Для извлечения переменных из ответа в формате JSON нам нужно установить парсер json.exe. Это можно сделать с помощью команды:

choco install -y json

Затем необходимо прочитать содержимое файла data.json с помощью команды:

SET /P data=<data.json

Теперь мы можем использовать парсер json.exe для извлечения переменных из полученных данных. К примеру, чтобы получить значение переменной "foo", используйте следующую команду:

FOR /f "tokens=2 delims=:," %%j IN ('echo %data% ^| json.exe foo') DO SET "foo=%%~j"

Данный код извлекает значение переменной "foo" из нашего словаря с помощью json.exe и сохраняет его в переменную foo.

Вы можете использовать этот же код для извлечения любой переменной из полученного JSON-объекта.

Заключение

Теперь вы знаете, как извлечь переменные из ответа в формате JSON в Batch-скрипте. Не забывайте, что этот пример использует встроенный парсер json.exe, который устанавливается с помощью утилиты Chocolatey. Если вы используете другой парсер JSON, то нужно адаптировать код для вашей среды. Удачи!