Jun 20, 2013
2 mins read
[DataContract] public class JsonData { [DataMember(Name = "ID", Order = 0)] public int Id { get; set; }[DataMember(Order = 1)] public string Name { get; set; } [DataMember(Order = 2)] public DateTime Today { get; set; } [DataMember(Order=3)] public bool IsBool { get; set; } [IgnoreDataMember()] public string UnlessField { get; set; }
}
// 淮備序列化的類別資料 List<JsonData> dataList = new List<JsonData>() { new JsonData() { Id = 1, Name = "data1", Today = DateTime.Now.AddDays(-1), IsBool = true, UnlessField = "沒用到的欄位1" }, new JsonData() { Id = 2, Name = "data2", Today = DateTime.Now, IsBool = false, UnlessField = "沒用到的欄位2" }, new JsonData() { Id = 3, Name = "data3", Today = DateTime.Now.AddDays(1), IsBool = true, UnlessField = "沒用到的欄位3" }};
// 初始化DataContractJsonSerializer類別 DataContractJsonSerializer dcjs = new DataContractJsonSerializer(typeof(List<JsonData>)); string jsonString = string.Empty;
// 序列化資料 using (MemoryStream ms = new MemoryStream()) { dcjs.WriteObject(ms, dataList); jsonString = Encoding.UTF8.GetString(ms.ToArray()); Console.WriteLine(jsonString); Console.WriteLine(); }
// 反序列化資料 using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString))) { List<JsonData> data2List = dcjs.ReadObject(ms) as List<JsonData>; foreach (JsonData item in data2List) { Console.WriteLine( "Id:{0}, Name:{1}, Today:{2}, IsBool:{3}, UnlessField:{4}", item.Id, item.Name, item.Today, item.IsBool, item.UnlessField); } }
Sharing is caring!