天天看點

Json.net說法——(二)集合序列化

集合序列化

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>

轉載請注明:部落格園