Инженерия · Сборка и архитектура

JSON

nlohmann::json: формат, на котором говорит интернет

~30 мин 7 шагов

После урока ты сможешь

  • Разбирать JSON в свои структуры
  • Сериализовать структуры обратно в JSON
  • Обрабатывать некорректный JSON без падения

Шаг 1 из 7

Формат, на котором говорит интернет

Когда Telegram сообщает боту о новом сообщении, он присылает такой текст:

{
  "update_id": 815,
  "message": {
    "message_id": 42,
    "from": {"id": 1001, "first_name": "Аня", "username": "anya"},
    "chat": {"id": 1001, "type": "private"},
    "text": "/add купить молоко"
  }
}

Это JSON — самый распространённый формат обмена данными. На нём отвечают почти все API в интернете, в нём хранят настройки программ. Устроен он просто, в нём всего шесть видов значений:

ВидПримерВ C++
объект{"name": "Аня", "age": 17}структура или std::map
массив[1, 2, 3]std::vector
строка"текст"std::string
число42, -3.5int, double
логическоеtrue, falsebool
пустоnullstd::optional без значения

Ключи объекта — всегда строки в двойных кавычках. Значения могут вкладываться друг в друга сколько угодно.

В стандартной библиотеке C++ JSON нет, поэтому все пользуются библиотекой nlohmann/json. Её мы подключали в уроке про библиотеки, и на платформе она уже установлена.