DataContractJsonSerializer, exemple
Cet article décrit l’exemple JsonSerialization.
Notes
Cet exemple concerne DataContractJsonSerializer. Pour la plupart des scénarios qui impliquent la sérialisation et la désérialisation de données JSON, nous vous recommandons les API dans l’espace de noms System.Text.Json.
DataContractJsonSerializer prend en charge les mêmes types que DataContractSerializer. Le format de données JSON est particulièrement utile lors de l'écriture d'applications Web de style JavaScript et XML (AJAX) asynchrones. La prise en charge d’AJAX dans Windows Communication Foundation (WCF) est optimisée pour permettre son utilisation avec ASP.NET AJAX via le contrôle ScriptManager. Pour obtenir des exemples d’utilisation de Windows Communication Foundation (WCF) avec ASP.NET AJAX, consultez les exemples AJAX.
La procédure d'installation ainsi que les instructions de génération correspondant à cet exemple figurent en fin de rubrique.
L'exemple utilise un contrat de données Person
pour illustrer la sérialisation et la désérialisation.
[DataContract]
class Person
{
[DataMember]
internal string name;
[DataMember]
internal int age;
}
Pour sérialiser une instance du type Person
en JSON, créez d'abord le DataContractJsonSerializer et utilisez la méthode WriteObject
pour écrire des données JSON dans un flux.
Person p = new Person();
//Set up Person object...
MemoryStream stream1 = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Person));
ser.WriteObject(stream1, p);
Le flux de mémoire contient des données JSON valides.
{"age":42,"name":"John"}
L'exemple illustre la désérialisation de données JSON dans un objet. Ensuite, vous rembobinez le flux et appelez ReadObject
.
Person p2 = (Person)ser.ReadObject(stream1);
L'examen de l'objet p2
révèle que les données JSON ont été correctement désérialisées.
Pour configurer, générer et exécuter l'exemple
Générez la solution JsonSerialization.sln telle que décrite dans Génération des exemples Windows Communication Foundation.
Exécutez l'application console qui en résulte.