zoukankan      html  css  js  c++  java
  • 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字符串
    }
  • 相关阅读:
    HDU 4393 Throw nails(贪心加模拟,追及问题)
    【Add Two Numbers】
    【Single Num II】cpp
    【Single Number】cpp
    【Candy】cpp
    【Gas Station】cpp
    【Set Matrix Zeros】cpp
    【Gray Code】cpp
    【Climbing Stairs】cpp
    【Plus One】cpp
  • 原文地址:https://www.cnblogs.com/robertyao/p/10092368.html
Copyright © 2011-2022 走看看