序列化和反序列化

回顾一下上一节的序列化,把一个实体对象转换为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)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注