Compartir a través de


Ejemplo de DataContractJsonSerializer

En este artículo se describe el ejemplo de JsonSerialization.

Nota:

Este ejemplo es para DataContractJsonSerializer. Para la mayoría de los escenarios que implican serializar y deserializar JSON, se recomiendan las API en el espacio de nombres System.Text.Json.

DataContractJsonSerializer admite los mismos tipos que DataContractSerializer. El formato de datos JSON es especialmente útil al escribir aplicaciones web asincrónicas de JavaScript y XML (AJAX). La compatibilidad con AJAX en Windows Communication Foundation (WCF) está optimizada para su uso con ASP.NET AJAX a través del control ScriptManager. Para obtener ejemplos de cómo usar Windows Communication Foundation (WCF) con ASP.NET AJAX, consulta los ejemplos de AJAX.

El procedimiento de configuración y las instrucciones de compilación de este ejemplo se encuentran al final de este tema.

En el ejemplo se usa un Person contrato de datos para demostrar la serialización y la deserialización.

[DataContract]
class Person
{
    [DataMember]
    internal string name;

    [DataMember]
    internal int age;
}

Para serializar una instancia del tipo Person en JSON, primero cree el DataContractJsonSerializer y luego utilice el método WriteObject para escribir datos JSON en una secuencia.

Person p = new Person();
//Set up Person object...
MemoryStream stream1 = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Person));
ser.WriteObject(stream1, p);

El flujo de memoria contiene datos JSON válidos.

{"age":42,"name":"John"}

En el ejemplo se muestra la deserialización de datos JSON en un objeto . Se rebobina la secuencia y se llama a ReadObject.

Person p2 = (Person)ser.ReadObject(stream1);

Al examinar el p2 objeto, se revela que los datos JSON se han deserializado correctamente.

Para configurar, compilar y ejecutar el ejemplo

  1. Compile la solución JsonSerialization.sln tal y como se describe en Creación de ejemplos de Windows Communication Foundation.

  2. Ejecute la aplicación de consola resultante.