วิธีสร้างไฟล์คลาส 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 Schemaกำลังถามเกี่ยวกับ JSON Schemas ซึ่งอาจเป็นแนวทางในการใช้งานตามท้องถนน

ประโยชน์และข้อเสียของคลาส C # ที่สร้างขึ้นสำหรับวัตถุ Json



ลองใช้เครื่องมือนี้อาจช่วยได้ .. tools4geeks.com/json-to-Csharp-classes
Dheeraj Palagiri

ใครรู้วิธีทำสิ่งเดียวกันกับ Swagger YAML?
ryanwebjackson

น่าเสียดายที่ json2charp.com เป็นโดเมนที่ลดราคาแล้ว มันแย่มากและหนึ่งใน Quicktipe นั้นค่อนข้างน่าเบื่อ มีใครรู้ทางเลือกอื่นที่ดีกว่านี้ไหม
DARKGuy

@DARKGuy jsonutils jsonutils.com
Rafael

คำตอบ:


147

ห้าตัวเลือก:

  • ใช้เครื่องมือเว็บjsonutilsฟรีโดยไม่ต้องติดตั้งอะไรเลย

  • หากคุณมีWeb Essentialsใน Visual Studio ให้ใช้แก้ไข> วางแบบพิเศษ> วาง JSON เป็นคลาส

  • ใช้jsonclassgenerator .exe ฟรี

  • app.quicktype.ioเครื่องมือบนเว็บไม่จำเป็นต้องติดตั้งอะไรเลย

  • เครื่องมือเว็บjson2csharpยังไม่จำเป็นต้องติดตั้งอะไรเลย

ข้อดีและข้อเสีย:

  • jsonclassgeneratorแปลงเป็น PascalCase แต่ตัวอื่นไม่ทำ

  • app.quicktype.ioมีตรรกะบางอย่างในการจดจำพจนานุกรมและจัดการคุณสมบัติ JSON ที่ชื่อเป็นตัวระบุ c # ไม่ถูกต้อง


ทั้ง Web Essentials และ json2csharp ทำงานได้อย่างยอดเยี่ยม ไม่ได้ลองใช้ jsonclassgenerator ทำให้มันยุ่งยากที่จะต้องเปิดแอปแยกต่างหากสำหรับสิ่งนั้น
Zoran P.

1
ฉันยังไม่ได้ลอง jsonclassgenerator แต่ฉันเห็นข้อดี ตัวอย่างเช่นหากคุณมี API จำลองคุณสามารถโต้ตอบกับชุดของจุดสิ้นสุดเพื่อสร้างโมเดลของคุณใหม่ คุณสามารถไปได้ไกลถึงการตั้งค่าสคริปต์ที่ตรวจสอบการคอมมิตใหม่และอัปเดตโมเดลหากมีอะไรเปลี่ยนแปลง คุณคงไม่ต้องการวาง json ใหม่ด้วยตนเองทุกครั้งเพราะอาจเกิดข้อผิดพลาดได้
Billy Jake O'Connor

เครื่องมือ json2csharp ทำงานได้ดีกว่า VS ของการจัดรูปแบบคลาสโดยเฉพาะชื่อคลาส มันจะลบอักขระที่ไม่ชัดเจนเช่น "_" และกรณีอูฐให้ถูกต้องตามชื่อคลาสหลังจากนั้น
big_water

2
"jsonutils" สวยมากสามารถสร้างแอตทริบิวต์เช่น "คุณสมบัติ Json" ได้เช่นกันjsonutils.com
Dhanuka777

app.quicktype.io อันนี้ใช้ไม่ได้กับบางเครื่องเนื่องจากปัญหาด้านความปลอดภัย
Sean Ch

122

Visual Studio 2012 (กับ ASP.NET และเครื่องมือเว็บ 2,012.2 RC ติดตั้ง) นี้สนับสนุนโดยกำเนิด

Visual Studio 2013 เป็นต้นไปมีสิ่งนี้ในตัว

Visual Studio วาง JSON เป็นภาพหน้าจอของคลาส (เอื้อเฟื้อภาพ: robert.muehsig )


4
ฉันคิดว่าวิธีนี้ดีที่สุดเพราะคุณไม่จำเป็นต้องมีโปรแกรมภายนอก!
Abraão Caldas

ก่อนวางที่นี่คือวิธีการคัดลอก JSON จาก console.logในเครื่องมือสำหรับนักพัฒนาไปยังคลิปบอร์ด หวังว่าจะช่วยได้
shaijut

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.