Given the following JSON object,
form = { "name": "", "address": { "street": "", "city": "", "province": "", "postalCode": "", "country": "" }, "phoneDay": "", "phoneCell": "", "businessName": "", "website": "", "email": "" } what is a tool to auto-generate the following C# class?
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; } } We have already looked at these questions:
Generate C# classes from JSON Schema Is asking about JSON Schemas which may be an approach to use down the road.
Benefits and drawbacks of generated C# classes for Json objects
63 Answers
Five options:
Use the free jsonutils web tool without installing anything.
If you have Web Essentials in Visual Studio, use Edit > Paste special > paste JSON as class.
Use the free jsonclassgenerator.exe
The web tool app.quicktype.io does not require installing anything.
The web tool json2csharp also does not require installing anything.
Pros and Cons:
jsonclassgenerator converts to PascalCase but the others do not.
app.quicktype.io has some logic to recognize dictionaries and handle JSON properties whose names are invalid c# identifiers.
Visual Studio 2012 (with ASP.NET and Web Tools 2012.2 RC installed) supports this natively.
Visual Studio 2013 onwards have this built-in.
(Image courtesy: robert.muehsig)
If you install Web Essentials into Visual studio you can go to Edit => Past special => paste JSON as class.
That is probably the easiest there is.
0