Генератор JSON в классы и records C#

Ввод JSON

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

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

Configuration

Введите JSON, чтобы сгенерировать типобезопасные классы и records C# для ваших проектов .NET

Классы, records, DTO и свойства с nullable reference types

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

Используйте этот генератор JSON в C#, чтобы создавать классы или записи C# из образцов JSON для API ASP.NET Core и приложений .NET.

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

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

    • Установите Class Name и Namespace в соответствии со структурой вашего проекта.
    • Если вам нужны атрибуты, выберите структуру JSON (System.Text.Json или Newtonsoft.Json).
    • Включите ссылочные типы, допускающие значение NULL, чтобы необязательные поля сопоставлялись с string? и аналогичными типами.
  3. Шаг 3. Просмотрите сгенерированный код.

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

    • Вставьте вывод в свой проект и добавьте его в папку API/DTO.
    • Десериализуйте JSON в корневой тип, используя выбранный вами сериализатор.
    • Держите DTO отдельно от моделей предметной области, когда вам нужно управление версиями и обратная совместимость.
  5. Шаг 5 – Скопируйте или загрузите

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

Советы

  • По возможности отдавайте предпочтение записям для неизменяемых моделей.
  • Используйте [JsonPropertyName]/[JsonProperty], если ключи JSON не соответствуют именам C#.
  • Проверяйте ввод заранее, чтобы избежать частично инициализированных объектов.
Пример вывода (упрощенный)
// Ввод 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# DTOs (simplified)
public class Metadata
{
    public string Plan { get; set; } = string.Empty;
}

public class Root
{
    public int Id { get; set; }
    public string Name { get; set; } = string.Empty;
    public string? Email { get; set; }
    public bool Active { get; set; }
    public List<string> Roles { get; set; } = new();
    public Metadata Metadata { get; set; } = new();
    public DateTime CreatedAt { get; set; }
    public double Score { get; set; }
    public object? Notes { get; set; }
}

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

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

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

Какие возможности C# поддерживает генератор JSON → C#?

Генератор создаёт классы C# и records (C# 9+) со свойствами, поддерживает атрибуты JSON.NET и System.Text.Json и следует современным соглашениям .NET с корректными namespace.

Можно ли генерировать records и DTO вместо обычных классов?

Да! Выберите «Record», чтобы генерировать современные records с неизменяемыми свойствами — удобно для DTO, контрактов API и value types.

Как работает сериализация JSON для типов C#?

Поддерживаются атрибуты Newtonsoft.Json и System.Text.Json для корректной сериализации/десериализации, включая кастомные имена свойств, обработку null и гибкие настройки.

Что с nullable reference types и опциональными полями JSON?

Генератор добавляет nullable‑аннотации (например, object?) для свойств, которые могут быть null, следуя современным правилам C# и помогая безопасно маппить опциональные поля.

Можно ли использовать сгенерированный код в ASP.NET Core или Blazor?

Да. Код хорошо подходит для контроллеров ASP.NET Core, minimal APIs, компонентов Blazor и любых .NET‑приложений, которым нужны типизированные модели для JSON‑payload.

Этот генератор JSON → C# бесплатный?

Да, генератор JSON → C# от JSON Swiss бесплатен. Вставьте JSON, настройте параметры и получите C#‑код без установки инструментов или расширений.

Генератор JSON в классы и records C# | JSONSwiss