• C#Json转DataTable


    /// <summary>
    /// Json 字符串 转换为 DataTable数据集合
    /// </summary>
    /// <param name="json"></param>
    /// <returns></returns>
    public static DataTable ToDataTableTwo(string json)
    {
      DataTable dataTable = new DataTable(); //实例化
      DataTable result;
    try
    {
      JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
      javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
      ArrayList arrayList = javaScriptSerializer.Deserialize<ArrayList>(json);
      if (arrayList.Count > 0)
      {
        foreach (Dictionary<string, object> dictionary in arrayList)
        {
          if (dictionary.Keys.Count<string>() == 0)
          {
            result = dataTable;
            return result;
          }
    //Columns
    if (dataTable.Columns.Count == 0)
    {
      foreach (string current in dictionary.Keys)
      {
        dataTable.Columns.Add(current, dictionary[current].GetType());
      }
    }
    //Rows
    DataRow dataRow = dataTable.NewRow();
    foreach (string current in dictionary.Keys)
    {
      dataRow[current] = dictionary[current];
    }
      dataTable.Rows.Add(dataRow); //循环添加行到DataTable中
      }
      }
      }
      catch
      {
      }
      result = dataTable;
      return result;
    }
    
     
    
    public static string ToJson(this DataTable dt)
    {
      JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
      javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
      ArrayList arrayList = javaScriptSerializer.Deserialize<ArrayList>(json);
      foreach (DataRow dataRow in dt.Rows)
      {
        Dictionary<string, object> dictionary = new Dictionary<string, object>(); //实例化一个参数集合
      foreach (DataColumn dataColumn in dt.Columns)
      {
        dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName].ToStr());
      }
        arrayList.Add(dictionary); //ArrayList集合中添加键值
      }
    
      return javaScriptSerializer.Serialize(arrayList); //返回一个json字符串
    }
  • 相关阅读:
    bootmgr is missing
    【转】ahci和IDE的区别
    win10系统故障代码:0xc000014c
    c++小数点后舍入
    关于类里再声明自身类实例的思考
    Java集合
    Python图片转字符画
    102. Binary Tree Level Order Traversal
    1041. Robot Bounded In Circle
    144. Binary Tree Preorder Traversal
  • 原文地址:https://www.cnblogs.com/robertyao/p/10092368.html
Copyright © 2020-2023  润新知