Cara membuat file kelas C # secara otomatis dari string JSON [tertutup]

108

Diberikan objek JSON berikut,

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

apa alat untuk menghasilkan otomatis kelas C # berikut?

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; }
}

Kami telah melihat pertanyaan-pertanyaan ini:

Hasilkan C # kelas dari JSON Schema Bertanya tentang JSON Schemas yang mungkin merupakan pendekatan untuk digunakan di jalan.

Manfaat dan kelemahan kelas C # yang dihasilkan untuk objek Json

Shaun Luttin
sumber
4
json2csharp.com ???
Habib
coba alat ini mungkin bisa membantu .. tools4geeks.com/json-to-Csharp-classes
Dheeraj Palagiri
Adakah yang tahu bagaimana melakukan hal yang sama dengan Swagger YAML?
ryanwebjackson
Sayangnya json2charp.com sekarang menjadi domain yang dijual. Itu menyebalkan, dan quicktipe agak kikuk. Apakah ada yang tahu alternatif yang lebih baik?
DARKGuy
@DARKGuy jsonutils jsonutils.com
Rafael

Jawaban:

146

Lima pilihan:

Pro dan kontra:

  • jsonclassgenerator beralih ke PascalCase tetapi yang lainnya tidak.

  • app.quicktype.io memiliki beberapa logika untuk mengenali kamus dan menangani properti JSON yang namanya pengenal c # tidak valid.

Shaun Luttin
sumber
baik Web Essentials dan json2csharp melakukan pekerjaan dengan baik. Tidak mencoba jsonclassgenerator, karena sepertinya repot membuka aplikasi terpisah hanya untuk itu
Zoran P.
1
Saya belum mencoba jsonclassgenerator tetapi saya dapat melihat keuntungannya. Misalnya jika Anda memiliki api tiruan, Anda dapat menginterasi serangkaian titik akhir untuk membuat ulang model Anda. Anda bisa pergi sejauh menyetel skrip yang memeriksa komit baru dan memperbarui model jika ada yang berubah. Anda tidak ingin setiap kali menempelkan json baru secara manual karena hal ini rentan terhadap kesalahan.
Billy Jake O'Connor
Alat json2csharp melakukan pekerjaan yang lebih baik daripada VS dalam memformat kelas terutama nama kelas. Ini akan menghapus karakter ambigu seperti "_" dan benar menjadikan nama kelas unta setelahnya.
big_water
2
"jsonutils" cukup keren, dapat menghasilkan atribut seperti "properti Json" juga, jsonutils.com
Dhanuka777
app.quicktype.io yang satu ini tidak berfungsi pada beberapa mesin karena masalah keamanan.
Sean Ch
121

Visual Studio 2012 (dengan ASP.NET dan Web Tools 2012.2 RC diinstal) mendukung ini secara native .

Visual Studio 2013 dan seterusnya memiliki bawaan ini.

Tangkapan layar Visual Studio Paste JSON as Classes (Gambar milik: robert.muehsig )

Mrchief
sumber
4
Saya pikir solusi ini adalah yang terbaik, karena Anda tidak memerlukan program eksternal!
Abraão Caldas
sebelum menempel di sini adalah solusi untuk Menyalin JSON dari console.log di alat pengembang ke papan klip. Semoga membantu.
shaijut
10

Jika Anda menginstal Web Essentials ke Visual studio, Anda dapat pergi ke Edit => Past special => paste JSON sebagai kelas.

Itu mungkin yang termudah.

Dasar-dasar Web: http://vswebessentials.com/

Kenneth
sumber