다음을 통해 공유


DataContractJsonSerializer 예제

이 문서에서는 JsonSerialization 샘플을 설명합니다.

비고

이 샘플은 DataContractJsonSerializer용입니다. JSON 직렬화 및 역직렬화를 포함하는 대부분의 시나리오에서는 System.Text.Json 네임스페이스의 API를 사용하는 것이 좋습니다.

DataContractJsonSerializer 는 .와 동일한 형식을 DataContractSerializer지원합니다. JSON 데이터 형식은 AJAX(비동기 JavaScript 및 XML) 스타일의 웹 애플리케이션을 작성할 때 특히 유용합니다. WCF(Windows Communication Foundation)의 AJAX 지원은 ScriptManager 컨트롤을 통해 ASP.NET AJAX와 함께 사용하도록 최적화되어 있습니다. ASP.NET AJAX에서 WCF(Windows Communication Foundation)를 사용하는 방법에 대한 예제는 AJAX 샘플을 참조하세요.

이 샘플에 대한 설정 절차 및 빌드 지침은 이 항목의 끝에 있습니다.

샘플은 Person 데이터 계약을 사용하여 직렬화 및 역직렬화를 시연합니다.

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

    [DataMember]
    internal int age;
}

형식의 Person 인스턴스를 JSON으로 직렬화하려면 첫 번째 인스턴스를 DataContractJsonSerializer 만들고 이 메서드를 사용하여 WriteObject JSON 데이터를 스트림에 씁니다.

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

메모리 스트림에는 유효한 JSON 데이터가 포함됩니다.

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

이 샘플에서는 JSON 데이터에서 개체로 역직렬화하는 방법을 보여 줍니다. 그런 다음 스트림을 되감은 후 ReadObject을(를) 호출합니다.

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

개체를 p2 검사하면 JSON 데이터가 올바르게 역직렬화되었음을 알 수 있습니다.

샘플을 설정하려면 빌드하고 실행합니다.

  1. Windows Communication Foundation 샘플 빌드에 설명된 대로 JsonSerialization.sln 솔루션을 빌드합니다.

  2. 결과 콘솔 애플리케이션을 실행합니다.