集合序列化
Json序列化器支援大量序列化和反序列化集合對象的方法。
要序列化一個集合(泛型清單,字典或自定義集合),隻需簡單的調用相關的序列化器就可以了。json.net會序列化這個集合和它包含的所有值。
序列化
List<Customer> _list = new List<Customer>();
_list.Add(new Customer { Unid=1, CustomerName="宋江",Memo="天魁星"});
_list.Add(new Customer { Unid = 1, CustomerName = "吳用", Memo = "天機星" });
_list.Add(new Customer { Unid = 1, CustomerName = "石秀", Memo = "天慧星" });
string strJson = JsonConvert.SerializeObject(_list, Formatting.Indented);
/*
[{"ID": 1,"CustomerName": "宋江","Memo": "天魁星"},
{"ID": 1,"CustomerName": "吳用","Memo": "天機星"},
{"ID": 1,"CustomerName": "石秀","Memo": "天慧星"}]
*/
反序列化
反序列化一個json對象到一個.net集合,隻需指定要反序列化的集合類型即可。json.net支援大量的集合類型。
string strJson = @"[{""ID"": 1,""CustomerName"": ""宋江"",""Memo"": ""天魁星""},{""ID"": 1,""CustomerName"": ""吳用"",""Memo"": ""天機星""},{""ID"": 1,""CustomerName"": ""石秀"",""Memo"": ""天慧星""}]";
List<Customer> _list = JsonConvert.DeserializeObject<List<Customer>>(strJson);
foreach (Customer c in _list)
{
Console.WriteLine(c.CustomerName);
}
宋江
吳用
石秀
反序列化字典
json.net也能把json對象反序列化為一個泛型字典。json對象的屬性名和值會被添加到一個字典中。
string strJson = @"{""ID"": 1,""CustomerName"": ""宋江"",""Memo"": ""天魁星""}";
Dictionary<string, string> _dictionary = JsonConvert.DeserializeObject<Dictionary<string, string>>(strJson);
foreach (KeyValuePair<string, string> kp in _dictionary)
Console.WriteLine(kp.Key + ":" + kp.Value);
這裡還用這個例子,雖然這個例子沒有意義,但屬性與屬性值也可以看做一個字典關系。
部落格園大道至簡
<a href="http://www.cnblogs.com/jams742003/" target="_blank">http://www.cnblogs.com/jams742003/</a>
轉載請注明:部落格園