C# implementiert die Methode zum Konvertieren von JSON in DataTable

高洛峰
Freigeben: 2017-01-18 09:41:53
Original
3820 Leute haben es durchsucht

Das Beispiel in diesem Artikel beschreibt die Methode zum Konvertieren von JSON in DataTable in C#. Teilen Sie es als Referenz mit allen. Die spezifische Implementierungsmethode lautet wie folgt:

#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(&#39;*&#39;);
 //创建表   
 if (tb == null)
 {
     tb = new DataTable();
     tb.TableName = strName;
     foreach (string str in strRows)
     {
  var dc = new DataColumn();
  string[] strCell = str.Split(&#39;#&#39;);
  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(&#39;#&#39;)[1].Trim().Replace(",", ",").Replace(":", ":").Replace("\"", "");
 }
 tb.Rows.Add(dr);
 tb.AcceptChanges();
    }
    return tb;
} 
#endregion
Nach dem Login kopieren

Ich hoffe, dass dieser Artikel für die C#-Programmierung aller hilfreich sein wird.

Weitere C#-bezogene Artikel zum Konvertieren von JSON in DataTable finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage