Json序列化和反序列化(两种方式)
序列化:对象--->Json 反序列化:Json--->对象
方式1:.NET3.5自带类库实现
.net3.5提供了json对象序列化与反序列化的类。位置在:System.Runtime.Serialization.Json空间下。其中如果要应用这个空间还必须添加对
System.ServiceModel
System.ServiceModel.Web
这两个库文件的引用。
public class Student { public int ID { get; set; } public string Name { get; set; } public int Age { get; set; } public string Sex { get; set; } } #region(使用 DataContractJsonSerializer 序列化,.net3.5) public string ToJson(Student St)//序列化 { DataContractJsonSerializer dj = new DataContractJsonSerializer(typeof(Student)); MemoryStream ms = new MemoryStream(); dj.WriteObject(ms, St); string strReturn = Encoding.UTF8.GetString(ms.ToArray()); ms.Close(); return strReturn; } public object FromJson(string strJson)//反序列化 { DataContractJsonSerializer dj = new DataContractJsonSerializer(typeof(Student)); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(strJson)); return dj.ReadObject(ms); } #endregion
方式2:使用Newtonsoft.Json.dll文件来实现
#region(使用JsonConvert序列化,需要引用Newtonsoft.json) public string ToJson2(object ob)//序列化 { string json = JsonConvert.SerializeObject(ob); return json; } public object FromJson2(string strjson) { object ob1 = JsonConvert.DeserializeObject(strjson); return ob1; } #endregion