Compartilhar via


Amostra de DataContractJsonSerializer

Este artigo descreve a amostra de JsonSerialization.

Observação

Esta amostra é para DataContractJsonSerializer. Para a maioria dos cenários que envolvem serialização e desserialização do JSON, recomendamos as APIs no namespace System.Text.Json.

O DataContractJsonSerializer dá suporte aos mesmos tipos que o DataContractSerializer. O formato de dados JSON é especialmente útil ao escrever aplicativos Web de estilo AJAX (Asynchronous JavaScript and XML). O suporte a AJAX no Windows Communication Foundation (WCF) é otimizado para uso com AJAX do ASP.NET por meio do controle ScriptManager. Para obter exemplos de como usar o Windows Communication Foundation (WCF) com AJAX do ASP.NET, consulte as Amostras de AJAX.

Os procedimentos de instalação e as instruções de compilação para esse exemplo estão localizadas no final deste tópico.

Este exemplo usa um contrato de dados Person para demonstrar a serialização e a desserialização.

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

    [DataMember]
    internal int age;
}

Para serializar uma instância do tipo Person para JSON, crie primeiro o DataContractJsonSerializer e use o método WriteObject para gravar dados JSON em um fluxo.

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

O fluxo de memória contém dados JSON válidos.

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

O exemplo demonstra a desserialização de dados JSON em um objeto. Em seguida, você volta o fluxo e chama ReadObject.

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

Examinar o objeto p2 revela que os dados JSON foram desserializados corretamente.

Para configurar, compilar e executar o exemplo

  1. Crie a solução JsonSerialization.sln conforme descrito em Como compilar as amostras do Windows Communication Foundation.

  2. Execute o aplicativo de console resultante.