zoukankan      html  css  js  c++  java
  • 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);

    }

    这里还用这个例子,虽然这个例子没有意义,但属性与属性值也可以看做一个字典关系。

     

     

  • 相关阅读:
    全民医疗
    SpringMVC
    Mybatis 缓存策略
    不要追涨杀跌
    我只认比特币
    ETH反思
    世界是熵增的
    切片最好还是传引用
    rxgo示例
    11月份的计划
  • 原文地址:https://www.cnblogs.com/jams742003/p/1631829.html
Copyright © 2011-2022 走看看