Tengo clases como estas:
class MyDate
{
int year, month, day;
}
class Lad
{
string firstName;
string lastName;
MyDate dateOfBirth;
}
Y me gustaría convertir un Lad
objeto en una cadena JSON como esta:
{
"firstName":"Markoff",
"lastName":"Chaney",
"dateOfBirth":
{
"year":"1901",
"month":"4",
"day":"30"
}
}
(sin el formato). Encontré este enlace , pero usa un espacio de nombres que no está en .NET 4 . También escuché sobre JSON.NET , pero su sitio parece estar inactivo en este momento, y no estoy interesado en usar archivos DLL externos.
¿Hay otras opciones además de crear manualmente un escritor de cadenas JSON ?
c#
.net
json
serialization
Hui
fuente
fuente
Respuestas:
Puede usar la
JavaScriptSerializer
clase (agregar referencia aSystem.Web.Extensions
):Un ejemplo completo:
fuente
classes
ajson
formato, esperanza ayuda a alguien.System.Web.Extensions
, debe tenerASP.NET AJAX 1.0
oASP.NET 3.5
instalar en su sistema. Consulte este stackoverflow.com/questions/7723489/…Como todos amamos las frases sencillas
... este depende del paquete Newtonsoft NuGet, que es popular y mejor que el serializador predeterminado.
Documentación: serialización y deserialización de JSON
fuente
Utilice la biblioteca Json.Net , puede descargarla desde Nuget Packet Manager.
Serializando a Json String:
Deserialización al objeto:
fuente
Use la
DataContractJsonSerializer
clase: MSDN1 , MSDN2 .Mi ejemplo: AQUÍ .
También puede deserializar de forma segura los objetos de una cadena JSON, a diferencia
JavaScriptSerializer
. Pero personalmente todavía prefiero Json.NET .fuente
Puede lograr esto usando Newtonsoft.json. Instale Newtonsoft.json desde NuGet. Y entonces:
fuente
Wooou! Realmente mejor usando un marco JSON :)
Aquí está mi ejemplo usando Json.NET ( http://james.newtonking.com/json ):
La prueba:
El resultado:
Ahora implementaré el método constructor que recibirá una cadena JSON y completará los campos de la clase.
fuente
Un nuevo serializador JSON está disponible en el
System.Text.Json
espacio de nombres. Está incluido en el marco compartido .NET Core 3.0 y está en un paquete NuGet para proyectos que apuntan a .NET Standard o .NET Framework o .NET Core 2.x.Código de ejemplo:
En este ejemplo, las clases a serializar tienen propiedades en lugar de campos; la
System.Text.Json
serializador actualmente no serializa campos.Documentación:
fuente
Si no son muy grandes, ¿cuál es su caso? Exportarlo como JSON.
Además, esto lo hace portátil entre todas las plataformas.
fuente
Si está en un controlador web ASP.NET MVC, es tan simple como:
No puedo creer que nadie haya mencionado esto.
fuente
Yo votaría por el serializador JSON de ServiceStack:
También es el serializador JSON más rápido disponible para .NET: http://www.servicestack.net/benchmarks/
fuente
Use el siguiente código para convertir XML a JSON.
fuente
Use estas herramientas para generar una clase C # y luego use este código para serializar su objeto:
fuente
Es tan fácil como esto (también funciona para objetos dinámicos (tipo de objeto)):
fuente
Serializador
Objeto
Implementación
Salida
fuente