Генератор JSON в C++

Ввод JSON

Загрузка редактора…

Сгенерированный C++

Configuration

Введите JSON, чтобы сгенерировать классы C++

Современные классы C++ с JSON‑сериализацией

Как конвертировать JSON в C++ – пошаговое руководство

Используйте этот генератор JSON в C++, чтобы создавать классы/структуры C++ из образцов JSON для серверных служб и собственных приложений.

  1. Шаг 1. Вставьте образец JSON.

    • Вставьте типичный объект или массив JSON в левый редактор.
    • Включите вложенные объекты, массивы и поля, допускающие значение NULL, чтобы типы выводились правильно.
    • Используйте Import для загрузки JSON из файла, URL-адреса или образца данных.
  2. Шаг 2. Выберите параметры генерации C++.

    • Выберите корень Class Name, соответствующий вашей модели домена.
    • Решите, как представлять поля, допускающие значение NULL (например, std::optional).
    • Убедитесь, как сопоставляются массивы и вложенные объекты (обычно std::vector и вложенные типы).
  3. Шаг 3. Просмотрите сгенерированный код.

    • Проверьте имена полей, типы и способ моделирования массивов/объектов.
    • Настройте такие параметры, как Root Type Name, обработку значений NULL и платформы, если они доступны.
    • Если поле выведено неправильно, измените образец JSON и выполните его повторное создание.
  4. Шаг 4. Используйте сгенерированные типы в C++.

    • Добавьте сгенерированные файлы заголовков/исходных файлов в вашу систему сборки.
    • Используйте предпочитаемую вами библиотеку JSON для анализа и заполнения типов модели.
    • Запустите форматтер (например, clang-format), соответствующий вашему руководству по стилю.
  5. Шаг 5 – Скопируйте или загрузите

    • Скопируйте выходные данные в свой проект или загрузите их в виде файла.
    • Запустите форматтер/линтер в соответствии со стилем вашего кода.
    • Добавьте библиотеки синтаксического анализа/сериализации JSON, если они требуются для вашего языка.

Советы

  • Используйте std::optional для полей, которые могут отсутствовать или иметь значение NULL.
  • Держите анализ и проверку близко к границам вашего приложения.
  • Отдавайте предпочтение типам значений и RAII, чтобы избежать ручного управления памятью.
Пример вывода (упрощенный)
// Ввод JSON
{
  "id": 123,
  "name": "Maeve Winters",
  "email": "[email protected]",
  "active": true,
  "roles": ["admin", "editor"],
  "metadata": { "plan": "pro" },
  "createdAt": "2024-03-01T10:15:00Z",
  "score": 99.5,
  "notes": null
}

// Generated C++ models (simplified)
struct Metadata {
  std::string plan;
};

struct Root {
  int id;
  std::string name;
  std::optional<std::string> email;
  bool active;
  std::vector<std::string> roles;
  Metadata metadata;
  std::string createdAt;
  double score;
  std::nullptr_t notes;
};

Сопутствующие инструменты JSON и C++

Узнайте больше об инструментах JSON и схемы, которые отлично работают вместе с генератором JSON в C++.

Часто задаваемые вопросы

Какие возможности C++ поддерживаются?

Генератор создаёт современные классы C++ с конструкторами, методами getter/setter, поддержкой JSON‑сериализации/десериализации, а также STL‑контейнеры и smart pointers.

Как работает JSON‑сериализация?

Сгенерированные классы содержат методы toJson() и fromJson(), которые работают с библиотекой nlohmann/json для сериализации и десериализации.

Какие стандарты C++ поддерживаются?

Код совместим с C++11 и выше, использует std::string, std::vector и другие STL‑контейнеры, с опциональной поддержкой smart pointers.

Как обрабатываются вложенные объекты?

Для вложенных объектов генерируются соответствующие классы, массивы маппятся на std::vector — поддерживаются сложные вложенные структуры.

Генератор JSON в C++ | JSONSwiss