Dado el siguiente objeto JSON,
form = {
"name": "",
"address": {
"street": "",
"city": "",
"province": "",
"postalCode": "",
"country": ""
},
"phoneDay": "",
"phoneCell": "",
"businessName": "",
"website": "",
"email": ""
}
¿Qué es una herramienta para generar automáticamente la siguiente clase 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; }
}
Ya hemos analizado estas preguntas:
Generar clases C # a partir de JSON Schema es preguntar sobre JSON Schemas, que puede ser un enfoque para usar en el futuro.
Beneficios e inconvenientes de las clases C # generadas para objetos Json
c#
json
code-generation
Shaun Luttin
fuente
fuente
Respuestas:
Cinco opciones:
Utilice la herramienta web gratuita jsonutils sin instalar nada.
Si tiene Web Essentials en Visual Studio, use Editar> Pegar especial> pegar JSON como clase.
Utilice el .exe gratuito jsonclassgenerator
La herramienta web app.quicktype.io no requiere instalar nada.
La herramienta web json2csharp tampoco requiere instalar nada.
Pros y contras:
jsonclassgenerator se convierte a PascalCase pero los demás no.
app.quicktype.io tiene cierta lógica para reconocer diccionarios y manejar propiedades JSON cuyos nombres son identificadores de C # inválidos.
fuente
Visual Studio 2012 (con ASP.NET y Web Tools 2012.2 RC instalados) admite esto de forma nativa .
Visual Studio 2013 en adelante tiene esta función.
(Imagen cortesía: robert.muehsig )
fuente
Si instala Web Essentials en Visual Studio, puede ir a Editar => Pasado especial => pegar JSON como clase.
Probablemente sea el más fácil que existe.
Web Essentials: http://vswebessentials.com/
fuente