Cách tự động tạo tệp lớp C # từ chuỗi JSON [đã đóng]


108

Cho đối tượng JSON sau,

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

công cụ để tự động tạo lớp C # sau đây là gì?

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

Chúng tôi đã xem xét những câu hỏi này:

Tạo các lớp C # từ Lược đồ JSON Đang hỏi về các Lược đồ JSON, đây có thể là một cách tiếp cận để sử dụng.

Lợi ích và hạn chế của các lớp C # được tạo cho các đối tượng Json



thử công cụ này có thể giúp .. tools4geeks.com/json-to-Csharp-classes
Dheeraj Palagiri

Có ai biết cách làm điều này tương tự với Swagger YAML không?
ryanwebjackson

Thật không may, json2charp.com hiện là một miền được giảm giá. Điều đó thật tệ hại, và một tờ giấy viết nhanh thì hơi khó hiểu. Có ai biết một thay thế tốt hơn?
DARKGuy

@DARKGuy jsonutils jsonutils.com
Rafael

Câu trả lời:


146

Năm lựa chọn:

  • Sử dụng công cụ web jsonutils miễn phí mà không cần cài đặt bất kỳ thứ gì.

  • Nếu bạn có Web Essentials trong Visual Studio, hãy sử dụng Chỉnh sửa> Dán đặc biệt> dán JSON làm lớp.

  • Sử dụng jsonclassgenerator miễn phí .exe

  • Công cụ web app.quicktype.io không yêu cầu cài đặt bất kỳ thứ gì.

  • Công cụ web json2csharp cũng không yêu cầu cài đặt bất cứ thứ gì.

Ưu và nhược điểm:

  • jsonclassgenerator chuyển đổi thành PascalCase nhưng những người khác thì không.

  • app.quicktype.io có một số logic để nhận dạng từ điển và xử lý các thuộc tính JSON có tên là số nhận dạng c # không hợp lệ.


cả Web Essentials và json2csharp đều đang làm rất tốt. Chưa thử jsonclassgenerator, gây ra nó có vẻ giống như một rắc rối để cần phải mở một ứng dụng riêng biệt chỉ dành riêng cho rằng
Zoran P.

1
Tôi chưa thử jsonclassgenerator nhưng tôi có thể thấy lợi thế. Ví dụ: nếu bạn có một api giả, bạn có thể tương tác trên một tập hợp các điểm cuối để tạo lại các mô hình của mình. Bạn có thể đi xa hơn như thiết lập một tập lệnh kiểm tra các cam kết mới và cập nhật mô hình nếu có bất kỳ điều gì thay đổi. Bạn sẽ không muốn dán json mới theo cách thủ công mỗi lần vì điều này có thể dễ bị nhầm lẫn.
Billy Jake O'Connor,

Công cụ json2csharp thực hiện một công việc tốt hơn VS là định dạng các lớp, đặc biệt là tên lớp. Nó sẽ loại bỏ các ký tự không rõ ràng như "_" và viết hoa camel một cách chính xác cho các tên lớp sau đó.
big_water

2
"jsonutils" khá tuyệt, nó cũng có thể tạo ra các thuộc tính như "thuộc tính Json
Dhanuka777

app.quicktype.io cái này không hoạt động trên một số máy do lo ngại về bảo mật.
Sean Ch

121

Visual Studio 2012 (với ASP.NET và Web Tools 2012.2 RC được cài đặt) hỗ trợ điều này nguyên bản .

Visual Studio 2013 trở đi có tích hợp này.

Visual Studio Dán JSON làm ảnh chụp màn hình Lớp (Hình ảnh lịch sự: robert.muehsig )


4
Tôi nghĩ rằng giải pháp này là tốt nhất, bởi vì bạn sẽ không cần một chương trình bên ngoài!
Abraão Caldas

trước khi dán ở đâygiải pháp Sao chép JSON từ console.log trong công cụ dành cho nhà phát triển vào khay nhớ tạm. Hy vọng sẽ giúp.
shaijut

10

Nếu bạn cài đặt Web Essentials vào Visual studio, bạn có thể vào Edit => Past special => paste JSON as class.

Đó có lẽ là dễ nhất có.

Thông tin cơ bản về web: http://vswebessentials.com/

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.