Як автоматично генерувати файл класу C # із рядка JSON [закрито]


108

З огляду на наступний об’єкт JSON,

form = {
  "name": "",
  "address": {
    "street": "",
    "city": "",
    "province": "",
    "postalCode": "",
    "country": ""
  },
  "phoneDay": "",
  "phoneCell": "",
  "businessName": "",
  "website": "",
  "email": ""
}

що таке інструмент для автоматичного створення наступного класу C #?

public class ContactInfo
{
    public string Name { get; set; }
    public Address Address { get; set; }
    public string PhoneDay { get; set; }
    public string PhoneCell { get; set; }
    public string BusinessName { get; set; }
    public string Website { get; set; }
    public string Email { get; set; }
}

public class Address
{
    public string Street { get; set; }
    public string City { get; set; }
    public string Province { get; set; }
    public string PostalCode { get; set; }
    public string Country { get; set; }
}

Ми вже розглянули ці питання:

Створення класів C # за допомогою схеми JSON Запитує про схеми JSON, які можуть бути підходом для використання в дорозі.

Переваги та недоліки створених класів C # для об'єктів Json



спробуйте цей інструмент може допомогти .. tools4geeks.com/json-to-Csharp-classes
Dheeraj Palagiri

Хтось знає, як зробити те ж саме із Swagger YAML?
ryanwebjackson

На жаль, json2charp.com зараз у продажу домен. Це смокче, і швидка стрічка - це якийсь незграбний. Хтось знає кращу альтернативу?
DARKGuy

@DARKGuy jsonutils jsonutils.com
Рафаель

Відповіді:


146

П'ять варіантів:

  • Використовуйте безкоштовний веб-інструмент jsonutils , не встановлюючи нічого.

  • Якщо у Visual Studio у вас є Web Essentials , використовуйте Правка> Вставити спеціальне> Вставити JSON як клас.

  • Використовуйте безкоштовний jsonclassgenerator .exe

  • Веб-інструмент app.quicktype.io нічого не вимагає встановлювати.

  • Веб-інструмент json2csharp також нічого не вимагає встановлювати.

Плюси і мінуси:

  • jsonclassgenerator перетворюється на PascalCase, але інші - ні.

  • app.quicktype.io має певну логіку розпізнавання словників та обробки властивостей JSON, імена яких недійсні ідентифікатори c #.


і Web Essentials, і json2csharp роблять чудову роботу. Не спробував jsonclassgenerator, тому що, здавалося, неприємності потрібно відкрити окремий додаток саме для цього
Zoran P.

1
Я не пробував jsonclassgenerator, але бачу перевагу. Наприклад, якщо у вас є макет api, ви можете взаємодіяти через набір кінцевих точок, щоб відновити свої моделі. Ви можете піти, якщо встановити сценарій, який перевіряє наявність нових комісій та оновить модель, якщо щось змінилося. Ви не хочете кожен раз вручну вставляти новий json, оскільки це може бути схильним до помилок.
Біллі Джейк О'Коннор

Інструмент json2csharp виконує кращу роботу, ніж VS форматування класів, особливо імен класів. Він видалить неоднозначні символи на зразок "_" і правильно верблює регістр назв класів після цього.
big_water

2
"jsonutils" досить крутий, він також може генерувати такі атрибути, як "властивості Json", jsonutils.com
Dhanuka777,

app.quicktype.io цей не працює на деяких машинах через проблеми безпеки.
Шон Ч.

121

Visual Studio 2012 (із встановленими ASP.NET та веб-інструментами 2012.2 RC) підтримує це на всьому світі .

У Visual Studio 2013 далі цей вбудований.

Visual Studio Paste JSON як скріншот класів ( Ввічливість до зображення: robert.muehsig )


4
Я вважаю, що це рішення є найкращим, бо вам не знадобиться зовнішня програма!
Абраао Кальдас

перед вставкою тут є рішення скопіювати JSON з console.log в інструменті розробника в буфер обміну. Надія допомагає.
shaijut

10

Якщо ви встановите Web Essentials у студію Visual, ви можете перейти до редагування => минулого спеціального => вставити JSON як клас.

Це, мабуть, найпростіше там.

Web Essentials: http://vswebessentials.com/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.