C# analysiert Json in DateTable

黄舟
Freigeben: 2017-02-18 10:39:49
Original
1724 Leute haben es durchsucht

C# Json in DateTable analysieren

 #region 将 Json 解析成 DateTable
        /// <summary>  
        /// 将 Json 解析成 DateTable。  
        /// Json 数据格式如:
        ///     {table:[{column1:1,column2:2,column3:3},{column1:1,column2:2,column3:3}]}
        /// </summary>  
        /// <param name="strJson">要解析的 Json 字符串</param>  
        /// <returns>返回 DateTable</returns>  
        public DataTable JsonToDataTable(string strJson)
        {
            // 取出表名  
            var rg = new Regex(@"(?<={)[^:]+(?=:\[)", RegexOptions.IgnoreCase);
            string strName = rg.Match(strJson).Value;
            DataTable tb = null;

            //数据为空返回
            if (strJson.Trim().Length == 0)
            {
                return tb;
            }
            // 检查strJson是否是json字符串
            if (!JsonSplit.IsJson(strJson))
            {
                return tb;
            }

            try
            {
                // 去除表名  
                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;);
                            dc.ColumnName = strCell[0].Replace("\"", "");
                            tb.Columns.Add(dc);
                        }
                        tb.AcceptChanges();
                    }
                    // 增加内容  
                    DataRow dr = tb.NewRow();
                    for (int j = 0; j < strRows.Length; j++)
                    {
                        dr[j] = strRows[j].Split(&#39;:&#39;)[1].Replace("\"", "");
                    }
                    tb.Rows.Add(dr);
                    tb.AcceptChanges();
                }
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.ToString());
            }
            return tb;
        }
        #endregion
Nach dem Login kopieren

Identifizieren Sie, ob eine Zeichenfolge im Json-Format vorliegt: http://www.php.cn/csharp-article-352536.html


ist wie folgt formatiert:

{
    "table": [
        {
            "column1": 1, 
            "column2": 2, 
            "column3": 3
        }, 
        {
            "column1": 1, 
            "column2": 2, 
            "column3": 3
        }
    ]
}
Nach dem Login kopieren

Zum Beispiel:

[{"Code":"MetaDataId","Name":"MetaDataId"},{"Code":"MetadataCode","Name":"编号"},{"Code":"SolutionName","Name":"名称"}]
Nach dem Login kopieren


Nach der Formatierung:

[
    {
        "Code": "MetaDataId", 
        "Name": "MetaDataId"
    }, 
    {
        "Code": "MetadataCode", 
        "Name": "编号"
    }, 
    {
        "Code": "SolutionName", 
        "Name": "名称"
    }
]
Nach dem Login kopieren

Codeformatierungstool: http://tool.oschina.net/codeformat/xml


Der konvertierte Effekt ist wie folgt:

Das Obige ist der Inhalt von C#, der Json in DateTable analysiert. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


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