Condividi tramite


Esempio DataContractJsonSerializer

Questo articolo descrive l'esempio JsonSerialization.

Nota

Questo esempio è per DataContractJsonSerializer. Per la maggior parte degli scenari che comportano la serializzazione e la deserializzazione di JSON, è consigliabile usare le API nello spazio dei nomi System.Text.Json.

DataContractJsonSerializer supporta gli stessi tipi dell'oggetto DataContractSerializer. Il formato dati JSON è particolarmente utile quando si creano applicazioni Web di tipo AJAX (Asynchronous JavaScript and XML). Il supporto AJAX in Windows Communication Foundation (WCF) è ottimizzato per l'utilizzo con ASP.NET AJAX tramite il controllo ScriptManager. Per esempi di come usare Windows Communication Foundation (WCF) con ASP.NET AJAX, vedere gli esempi AJAX.

La procedura di installazione e le istruzioni di compilazione per questo esempio si trovano alla fine di questo argomento.

Nell'esempio viene utilizzato un contratto dati Person per illustrare la serializzazione e la deserializzazione.

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

    [DataMember]
    internal int age;
}

Per serializzare un'istanza di tipo Person in formato JSON, creare prima l'elemento DataContractJsonSerializer e utilizzare il metodo WriteObject per scrivere i dati JSON in un flusso.

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

Il flusso di memoria contiene dati JSON validi.

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

Nell'esempio viene illustrata la deserializzazione da dati JSON a un oggetto. Si ritorna quindi all'inizio del flusso e si chiama ReadObject.

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

Esaminando l'oggetto p2 si evince che i dati JSON sono stati deserializzati correttamente.

Per impostare, compilare ed eseguire l'esempio

  1. Compilare la soluzione JsonSerialization.sln come descritto in Building the Windows Communication Foundation Samples.

  2. Eseguire l'applicazione console risultante.