Превратите пример JSON в классы или записи C# для System.Text.Json или Newtonsoft.Json
Работает в вашем браузере. Ничего из того, что вы вводите, никуда не отправляется. Проверено 16 октября 2026 г..Вставьте пример JSON и получите классы или записи (records) C# со свойствами в PascalCase и ключом JSON в атрибуте JsonPropertyName или JsonProperty. Целые числа становятся int, а свыше 2 147 483 647 — long, любая дробь делает поле double, а значение null или отсутствующее становится nullable, например int?.
Эта страница переведена машинным способом с английского оригинала. Перевод ещё не проверен человеком, поэтому ориентируйтесь на английскую версию. Читать английский оригинал
Вставьте пример JSON, например ответ API, в левое поле.
Классы C# появляются по мере ввода, по одному на объект, со свойствами в PascalCase и ключом JSON в атрибуте у каждого.
Выберите System.Text.Json или Newtonsoft.Json, а также записи с init, если предпочитаете неизменяемые модели.
Нажмите «Копировать» или «Скачать», чтобы сохранить Models.cs, и десериализуйте в корневой класс.
C# читает JSON в типизированные классы, и каждому свойству нужен правильный тип и способ найти свой ключ. Этот конвертер пишет такие классы по примеру, так что длинный ответ API превращается в компилируемую модель за одну вставку.
Как выбираются типы.
| Значение JSON | Тип C# |
|---|---|
| "text" | string |
| true / false | bool |
| 42 (только целые числа) | int или long за пределами 32 бит |
| 4.5 (встретилась любая дробь) | double |
| null и ещё какой-то тип | int?, string? |
| только null или смешанные виды | object? |
| [ ... ] | List<...> |
| { } пустой | Dictionary<string, object> |
| { ... } | отдельный класс |
Ключи и имена. Свойства пишутся в PascalCase, так что user_name становится UserName, а avatar_url — AvatarUrl. Каждое свойство несёт исходный ключ в атрибуте, потому что System.Text.Json по умолчанию сравнивает имена с учётом регистра; Newtonsoft вместо этого получает [JsonProperty]. Свойство, имя которого совпало бы с именем его класса, что компилятор отвергает как CS0542, получает добавку Value.
Массивы объектов. Все объекты массива сливаются в один класс, поэтому ключ, который есть только в некоторых из них, всё равно присутствует и делается nullable, чтобы его отсутствие читалось как null, а не как 0 или false. Два объекта с точно одинаковыми ключами и типами используют один класс.
Параметры. Записи с init дают неизменяемые модели, сравниваемые по значению. Корневой класс называется Root, если вы не дадите ему имя. Если сам JSON — массив или одиночное значение, комментарий подсказывает, в какой тип десериализовать, например List.
Каждый результат проверен обратным чтением C# и сверкой с ним 9 примеров по правилам сериализаторов. Ничто из вставленного не покидает браузер.
Вставьте пример JSON в конвертер, и рядом появятся классы C#, по одному на объект, с атрибутом JsonPropertyName у каждого свойства. Скопируйте их в проект и читайте JSON через JsonSerializer.Deserialize<Root>(json) или через JsonConvert.DeserializeObject<Root>(json), если выбран Newtonsoft.
System.Text.Json по умолчанию сравнивает имена свойств с учётом регистра, поэтому свойство UserName никогда не получило бы ключ user_name. Атрибут называет точный ключ, что сохраняет имена C# в PascalCase и при этом читает JSON без настроек сериализатора и политики именования.
Свойство nullable, когда в примере у него встречается null или когда некоторые объекты массива пропускают его ключ. Без вопросительного знака отсутствующее число молча читалось бы как 0, а отсутствующий флаг как false, поэтому nullable-тип отличает отсутствие от нуля.
Записи с методами доступа init подходят для моделей, которые вы только читаете: их свойства не меняются после десериализации, а две записи с одинаковыми значениями равны. Классы с set подходят для моделей, которые вы заполняете или редактируете. Оба варианта работают с System.Text.Json начиная с .NET 5 и с Newtonsoft.Json.
Целые числа становятся int, или long, если значение больше 2 147 483 647, а поле становится double, как только любое значение в примере имеет дробную часть. Значения разных видов, например число в одном элементе и текст в другом, становятся object?, который хранит исходное значение JSON.
Нет. Преобразование выполняется в вашем браузере без запросов к серверу, и JSON не сохраняется, так что ответы API с токенами или личными данными остаются на вашем устройстве. Закройте вкладку, и ничего не останется.
Ставки и правила меняются; проверьте источник, прежде чем полагаться на цифру.
Всё ещё не получается? Задайте вопрос об инструменте «Конвертер JSON в классы C#» и ответить может любой, кто знает. Учётная запись не нужна.