Condividi tramite


Esempio di DataContractJsonSerializer

Questo articolo descrive l'esempio jsonSerialization.

Annotazioni

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 di DataContractSerializer. Il formato di dati JSON è particolarmente utile quando si scrivono applicazioni Web in stile JavaScript asincrono e XML (AJAX). Il supporto AJAX in Windows Communication Foundation (WCF) è ottimizzato per l'uso 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 configurazione e le istruzioni di compilazione per questo esempio si trovano alla fine di questo argomento.

L'esempio usa un Person contratto di dati per dimostrare la serializzazione e la deserializzazione.

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

    [DataMember]
    internal int age;
}

Per serializzare un'istanza del tipo Person in JSON, creare prima il DataContractJsonSerializer e utilizzare il metodo WriteObject per scrivere 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"}

L'esempio illustra la deserializzazione da dati JSON in un oggetto . Quindi riavvolgi il flusso e chiami ReadObject.

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

L'analisi dell'oggetto p2 rivela che i dati JSON sono stati deserializzati correttamente.

Per configurare, compilare ed eseguire l'esempio

  1. Compilare la soluzione JsonSerialization.sln come descritto in Compilazione degli esempi di Windows Communication Foundation.

  2. Eseguire l'applicazione console risultante.