(C#) 직렬화와 역직렬화

2025. 6. 16. 18:26개발

오늘은 C# Netonsoft 라이브러리를 사용해서 직렬화와 역직렬화에 대해서 공부해보겠습니다.

 

직렬화 (Serialization)

객체의 형태를 통신을 할 때 사용하는 (예)Json과 같은 형태로 변환시키는 것이다.

핵심은 데이터를 통신하기 쉽게 하나로 뭉쳐 연속적인 데이터의 형태로 바꾼다라고 생각하면 될 거 같다.

 

역직렬화 (Deserialization)

역직렬화는 그에 반대되는 의미이다.

(예)Json 같은 통신을 할 때 사용하는 형태를
객체의 형태로 변환시키는 것이다.

 

 

아래는 예시의 객체 형태이다.

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public DateTime BirthDate { get; set; }
}

Person person = new Person 
{ 
    Name = "홍길동", 
    Age = 30, 
    BirthDate = new DateTime(1994, 5, 15) 
};

 

 

여기서 만약 아래와 같이
객체를 직렬화 함수로 감싸주면  

String jsonData = JsonConvert.SerializeObject(person, Formatting.Indented) 
// Formatting.Indented는 Indented(들여쓰기) json을 들여서 쓰겠다라는 의미인가보다.

 

 

아래와 같이 Json 형태로 변한다.

{
  "Name": "홍길동",
  "Age": 30,
  "BirthDate": "1994-05-15"
}

 

 

다시 역직렬화는

아래와 같이 역직렬화 함수로 감싸면 된다.

Person person = JsonConvert.DeserializeObject<Person>(JsonData);