C# parses Json into DateTable

黄舟
Release: 2017-02-18 10:39:49
Original
1588 people have browsed it

C# Parse Json into DateTable

 #region 将 Json 解析成 DateTable
        ///   
        /// 将 Json 解析成 DateTable。  
        /// Json 数据格式如:
        ///     {table:[{column1:1,column2:2,column3:3},{column1:1,column2:2,column3:3}]}
        ///   
        /// 要解析的 Json 字符串  
        /// 返回 DateTable  
        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(',');
                    // 创建表  
                    if (tb == null)
                    {
                        tb = new DataTable();
                        tb.TableName = strName;
                        foreach (string str in strRows)
                        {
                            var dc = new DataColumn();
                            string[] strCell = str.Split(':');
                            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(':')[1].Replace("\"", "");
                    }
                    tb.Rows.Add(dr);
                    tb.AcceptChanges();
                }
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.ToString());
            }
            return tb;
        }
        #endregion
Copy after login

Identify whether a string is in Json format: http://www.php.cn/csharp-article-352536.html


The format is as follows:

{
    "table": [
        {
            "column1": 1, 
            "column2": 2, 
            "column3": 3
        }, 
        {
            "column1": 1, 
            "column2": 2, 
            "column3": 3
        }
    ]
}
Copy after login

For example:

[{"Code":"MetaDataId","Name":"MetaDataId"},{"Code":"MetadataCode","Name":"编号"},{"Code":"SolutionName","Name":"名称"}]
Copy after login


After formatting:

[
    {
        "Code": "MetaDataId", 
        "Name": "MetaDataId"
    }, 
    {
        "Code": "MetadataCode", 
        "Name": "编号"
    }, 
    {
        "Code": "SolutionName", 
        "Name": "名称"
    }
]
Copy after login

Code formatting tool: http://tool.oschina.net/codeformat/xml


The result after conversion is as follows:

## The above is the content of C# parsing Json into DateTable. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!



Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!