다음을 통해 공유


DataContractJsonSerializer 샘플

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

참고 항목

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

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

이 샘플의 설치 절차 및 빌드 지침은 이 항목의 끝부분에 나와 있습니다.

샘플에서는 Person 데이터 계약을 사용하여 serialization 및 deserialization을 보여 줍니다.

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

    [DataMember]
    internal int age;
}

Person 형식의 인스턴스를 JSON으로 serialize하려면 먼저 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. 결과 콘솔 애플리케이션을 실행합니다.