zoukankan      html  css  js  c++  java
  • C# (using Newtonsoft.Json) Json 转换用法小总结

      //序列化

    string Json字符串 = JsonConvert.SerializeObject(目标对象);

     // 字符串转化为对象 

       string UserJson = "{"UNO":"1"," +
                  " "UName":"龙"," +
                  " "Uage":"21"," +
                  " "Uaddress":"中国"," +
                  " "Uphone":"151 3692 3546"}";
                User Data = JsonConvert.DeserializeObject<User>(UserJson);

    //json字符串 转化为List集合

         string jsonText = "{ "Total":"0"," +
                   " "Rows":" +
                    "[" +
                   "{"UNO":"1"," +
                   ""UName":"龙"," +
                   ""Uage":"21"," +
                   ""Uaddress":"中国!"," +
                   ""Uphone":"151 3692 3546"}," +
    
                    "{"UNO":"1"," +
                    ""UName":"龙"," +
                    ""Uage":"21"," +
                    ""Uaddress":"中国!"," +
                    ""Uphone":"151 3692 3546"}" +
                    "]}";
    
    
                //获取索引
                int IndexofA = jsonText.IndexOf("[");
                int IndexofB = jsonText.IndexOf("]");
                //根据索引截取
                string str = jsonText.Substring(IndexofA, IndexofB - IndexofA + 1);
                //序列化
                List<User> objs = JsonConvert.DeserializeObject<List<User>>(str);

    //Json字符串 转化成 DataTable

        string Stringjson = "{ "Total":"0"," +
                 " "Rows":" +
              "[" +
              "{"UNO":"1"," +
               ""UName":"龙"," +
               ""Uage":"21"," +
               ""Uaddress":"中国!"," +
               ""Uphone":"151 3692 3546"}," +
    
               "{"UNO":"1"," +
               ""UName":"龙"," +
               ""Uage":"21"," +
               ""Uaddress":"中国!"," +
               ""Uphone":"151 3692 3546"}" +
               "]}";
    
    
                //获取索引
                int IndexofArrayListA = jsonText.IndexOf("[");
                int IndexofArrayListB = jsonText.IndexOf("]");
                //根据索引截取
                string JsonString = Stringjson.Substring(IndexofArrayListA, IndexofArrayListB - IndexofArrayListA + 1);
                List<User> obj = JsonConvert.DeserializeObject<List<User>>(JsonString);
    
                System.ComponentModel.PropertyDescriptorCollection properties = System.ComponentModel.TypeDescriptor.GetProperties(typeof(User));
                DataTable dt = new DataTable();
                for (int i = 0; i < properties.Count; i++)
                {
                    System.ComponentModel.PropertyDescriptor property = properties[i];
                    dt.Columns.Add(property.Name, property.PropertyType);
                }
                object[] values = new object[properties.Count];
                foreach (User item in obj)
                {
                    for (int i = 0; i < values.Length; i++)
                    {
                        values[i] = properties[i].GetValue(item);
                    }
                    dt.Rows.Add(values);
                }

    //实体对象

     /// <summary>
        /// 实体对象
        /// </summary>
        public class User
        {
            public string UNO { get; set; }
            public string UName { get; set; }
            public string Uage { get; set; }
            public string Uaddress { get; set; }
            public string Uphone { get; set; }
    
        }
  • 相关阅读:
    Kubernetes+Docker+Istio 容器云实践
    SDN网络IPv6组播机制支持实时视频业务海量用户扩展
    如何运用结构化思维进行故障处理
    UAVStack JVM监控分析工具:图形化展示采集及分析监控数据
    个性化推荐产品功能的设计和B端产品的功能策划方式
    Kubernetes监控实践(2):可行监控方案之Prometheus和Sensu
    demo演示如何写一个无配置格式统一的日志
    指尖前端重构(React)技术调研分析
    学习设计模式前传
    我是码农要翻身
  • 原文地址:https://www.cnblogs.com/szlblog/p/7364828.html
Copyright © 2011-2022 走看看