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
Compilare la soluzione JsonSerialization.sln come descritto in Building the Windows Communication Foundation Samples.
Eseguire l'applicazione console risultante.