(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);