이전 절의 직렬화를 복습해 보겠습니다. 엔티티 객체를 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)
직렬화와 역직렬화
Previous: 소개
Next: 배열 직렬화 및 역직렬화