직렬화와 역직렬화

이전 절의 직렬화를 복습해 보겠습니다. 엔티티 객체를 JSON 문자열로 변환하는 과정입니다.

직렬화

WebInfo webInfo = new WebInfo();
webInfo.age = 4;
webInfo.webname = "FoxDevelop";
webInfo.website = "foxdevelop.com";
webInfo.students = new Person[] { new Person { name = "Tom" }, new Person { name = "Jim" } };
// webinfo 객체를 JSON 문자열로 변환
StringWriter sw = new StringWriter();
JsonWriter writer = new JsonWriter(sw);
new JsonSerializer().Serialize(writer, webInfo);
string json = sw.GetStringBuilder().ToString();Code language: JavaScript (javascript)
생성되는 JSON 결과
{"webname":"FoxDevelop","website":"foxdevelop.com","age":4,"students":[{"name":"장삼"},{"name":"이사"}]}Code language: JSON / JSON with Comments (json)

역직렬화

JSON 문자열을 엔티티 객체로 변환합니다

방식1 (저수준 Reader 구문)

WebInfo model = new JsonSerializer()
    .Deserialize(new JsonTextReader(new StringReader(json)), typeof(WebInfo)) as WebInfo;Code language: JavaScript (javascript)

방식2 (간결한 제네릭 구문, Newtonsoft.Json)

WebInfo model = JavaScriptConvert.DeserializeObject<WebInfo>(json);Code language: HTML, XML (xml)

new JsonSerializer().Deserialize(new JsonTextReader(new StringReader(jsonString)), typeof(클래스이름) as 클래스이름

위 메서드를 이용해 JSON 객체를 엔티티 객체로 역직렬화할 수 있습니다.

이렇게도 사용 가능합니다

JavaScriptConvert.DeserializeObject<NodeInfo>(jsonText)

직렬화와 역직렬화

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다