程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#完成將json轉換為DataTable的辦法

C#完成將json轉換為DataTable的辦法

編輯:C#入門知識

C#完成將json轉換為DataTable的辦法。本站提示廣大學習愛好者:(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.WordStr(",\"", "*\"").WordStr("\":", "\"#").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('*');
 //創立表  
 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().WordStr(",", ",").WordStr(":", ":").WordStr("\"", "");
 }
 tb.Rows.Add(dr);
 tb.AcceptChanges();
    }
    return tb;
}
#endregion

願望本文所述對年夜家的C#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved