最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實現將json轉換為DataTable的方法

 更新時間:2015年03月10日 16:16:40   作者:MeGoodtoo  
這篇文章主要介紹了C#實現將json轉換為DataTable的方法,涉及C#操作json及DataTable的技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了C#實現將json轉換為DataTable的方法。分享給大家供大家參考。具體實現方法如下:

復制代碼 代碼如下:
#region 將json轉換為DataTable
/// <summary>
/// 將json轉換為DataTable
/// </summary>
/// <param name="strJson">得到的json</param>
/// <returns></returns>
private DataTable JsonToDataTable(string strJson)
{
    //轉換json格式
    strJson = strJson.Replace(",\"", "*\"").Replace("\":", "\"#").ToString();
    //取出表名  
    var rg = new Regex(@"(?<={)[^:]+(?=:\[)", RegexOptions.IgnoreCase);
    string strName = rg.Match(strJson).Value;
    DataTable tb = null;
    //去除表名  
    strJson = strJson.Substring(strJson.IndexOf("[") + 1);
    strJson = strJson.Substring(0, strJson.IndexOf("]"));
    //獲取數據  
    rg = new Regex(@"(?<={)[^}]+(?=})");
    MatchCollection mc = rg.Matches(strJson);
    for (int i = 0; i < mc.Count; i++)
    {
 string strRow = mc[i].Value;
 string[] strRows = strRow.Split('*');
 //創(chuàng)建表  
 if (tb == null)
 {
     tb = new DataTable();
     tb.TableName = strName;
     foreach (string str in strRows)
     {
  var dc = new DataColumn();
  string[] strCell = str.Split('#');
  if (strCell[0].Substring(0, 1) == "\"")
  {
      int a = strCell[0].Length;
      dc.ColumnName = strCell[0].Substring(1, a - 2);
  }
  else
  {
      dc.ColumnName = strCell[0];
  }
  tb.Columns.Add(dc);
     }
     tb.AcceptChanges();
 }
 //增加內容  
 DataRow dr = tb.NewRow();
 for (int r = 0; r < strRows.Length; r++)
 {
     dr[r] = strRows[r].Split('#')[1].Trim().Replace(",", ",").Replace(":", ":").Replace("\"", "");
 }
 tb.Rows.Add(dr);
 tb.AcceptChanges();
    }
    return tb;
}
#endregion

希望本文所述對大家的C#程序設計有所幫助。

相關文章

  • C# 設計模式系列教程-適配器模式

    C# 設計模式系列教程-適配器模式

    通過適配器,客戶端可以調用同一接口,因而對客戶端來說是透明的。這樣做更簡單、更直接、更緊湊。
    2016-06-06
  • C#實現Redis的分布式鎖

    C#實現Redis的分布式鎖

    我們在開發(fā)很多業(yè)務場景會使用到鎖,例如庫存控制,抽獎等。分布式與單機情況下最大的不同在于其不是多線程而是多進程。本文就來介紹一下,感興趣的可以了解一下
    2021-08-08
  • C#中LINQ?to?DataSet操作及DataTable與LINQ相互轉換

    C#中LINQ?to?DataSet操作及DataTable與LINQ相互轉換

    這篇文章介紹了C#中LINQ?to?DataSet操作及DataTable與LINQ相互轉換,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#之泛型詳解

    C#之泛型詳解

    本文詳細講解了C#中的泛型,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C# 使用相同權限調用 cmd 傳入命令的方法

    C# 使用相同權限調用 cmd 傳入命令的方法

    本文告訴大家如何使用相同權限調用cmd并且傳入命令,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-07-07
  • C#?Winform消息通知系統(tǒng)托盤氣泡提示框ToolTip控件

    C#?Winform消息通知系統(tǒng)托盤氣泡提示框ToolTip控件

    這篇文章主要為大家介紹了C#或Winform中的消息通知之系統(tǒng)托盤的氣泡提示框窗口(系統(tǒng)toast通知)、ToolTip控件和ToolTipText屬性詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 利用windows性能計數器進行服務器性能監(jiān)控示例分享

    利用windows性能計數器進行服務器性能監(jiān)控示例分享

    這篇文章主要介紹了利用windows性能計數器進行服務器性能監(jiān)控的方法,大家可以參考擴展其它功能
    2014-01-01
  • 基于C#實現FTP下載文件

    基于C#實現FTP下載文件

    這篇文章主要為大家詳細介紹了如何利用C#實現FTP下載文件,文中的示例代碼講解詳細,對我們學習C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • C#代碼實現撲克牌排序的幾種方式

    C#代碼實現撲克牌排序的幾種方式

    今天小編就為大家分享一篇關于C#代碼實現撲克牌排序,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • 解析C#中#region與#if的作用

    解析C#中#region與#if的作用

    以下是對C#中#region與#if的作用進行了詳細的介紹,需要的朋友可以過來參考下
    2013-09-09

最新評論

万州区| 佛教| 泽州县| 靖江市| 临桂县| 临桂县| 辉南县| 礼泉县| 静安区| 藁城市| 德钦县| 本溪| 从江县| 邵阳市| 玉龙| 民权县| 桂阳县| 织金县| 中宁县| 建昌县| 新巴尔虎右旗| 定远县| 社旗县| 柘荣县| 南昌县| 扬中市| 安达市| 班玛县| 丹寨县| 永顺县| 石家庄市| 泾川县| 松潘县| 通江县| 泸定县| 分宜县| 温泉县| 宜城市| 白沙| 洛南县| 太康县|