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

Ввод JSON

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

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

Configuration

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

Структуры с безопасным управлением памятью

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

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

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

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

    • Установите четкий Struct Name для вашей корневой модели (например, Root).
    • Выберите предустановку библиотеки JSON (например, json-c), если вам нужны помощники по синтаксическому анализу.
    • Просмотрите, как представляются массивы и вложенные объекты (часто указатели, требующие ручной обработки).
  3. Шаг 3. Просмотрите сгенерированный код.

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

    • Добавьте сгенерированные файлы .h/.c в свою сборку и при необходимости включите заголовок.
    • Подключите синтаксический анализ (если он создан) или сопоставьте значения JSON с вашими структурами вручную.
    • Обратите внимание на выделение и очистку строк, массивов и вложенных структур.
  5. Шаг 5 – Скопируйте или загрузите

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

Советы

  • Отдавайте предпочтение буферам фиксированного размера только тогда, когда вы контролируете размер входных данных; в противном случае используйте динамическое распределение.
  • Сохраняйте явными правила владения (кто распределяет, а кто освобождает).
  • Проверьте JSON перед синтаксическим анализом, чтобы избежать частичного распределения при недопустимом вводе.
Пример вывода (упрощенный)
// Ввод 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 structs (simplified)
typedef struct Metadata {
  char* plan;
} Metadata;

typedef struct Root {
  int id;
  char* name;
  char* email; // nullable in JSON
  int active;
  char** roles;
  int roles_count;
  Metadata metadata;
  char* createdAt;
  double score;
  void* notes;
} Root;

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

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

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

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

Генератор создаёт стандартные определения struct в C с функциями управления памятью (create и free), поддерживает базовое соответствие типов и следует соглашениям именования C.

Как устроено управление памятью?

Сгенерированный код включает функции create_ и free_ для безопасного выделения и освобождения памяти. Для строковых полей требуется ручное управление памятью.

Поддерживается ли библиотека JSON‑C?

Выберите фреймворк «JSON‑C», чтобы сгенерировать код, совместимый с библиотекой json-c, включая нужные заголовки.

Как обрабатываются сложные типы данных?

Массивы маппятся на указатели void**, вложенные объекты — на void*. Понадобятся приведения типов и управление памятью в зависимости от задач.

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