Json字符串转DataTable

 /// <summary>
        /// 将json转换为DataTable
        /// </summary>
        /// <param name="strJson">得到的json</param>
        /// <returns></returns>
        public static DataTable JsonToDT(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(‘*‘);

                //创建表
                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;
        }
时间: 2024-10-05 04:27:31

Json字符串转DataTable的相关文章

Json 字符串 转换为 DataTable数据集合

/// <summary> /// 将json转换为DataTable /// </summary> /// <param name="strJson">得到的json</param> /// <returns></returns> private DataTable JsonToDataTable(string strJson) { //转换json格式 strJson = strJson.Replace(&qu

C# json字符串转DataTable

我的json格式是这样的: {"success":true,"data":[{"C4":"英语","C3":"","C1":"99","C2":"CCC"},{"C4":"数学","C3":"","C1":&q

DataTable 对象 转换为Json 字符串

#region DataTable 转换为Json 字符串 /// <summary> /// DataTable 对象 转换为Json 字符串 /// </summary> /// <param name="dt"></param> /// <returns></returns> public string ToJson( DataTable dt) { JavaScriptSerializer javaScri

DataTable 和Json 字符串互转

#region DataTable 转换为Json字符串实例方法 /// <summary> /// GetClassTypeJosn 的摘要说明 /// </summary> public class GetClassTypeJosn : IHttpHandler { /// <summary> /// 文件名:DataTable 和Json 字符串互转/// </summary> //用法说明实例 public void ProcessRequest(H

DataTable转json字符串,jQuery.parseJSON()把json字符串转为标准的json对象格式

1.string res = DataTableToJson.DataTable2Json(dt);讲DataTable转换为json字符串 http://www.365mini.com/page/jquery_parsejson.htm 2.jQuery.parseJSON()函数用于将格式完好的JSON字符串转为与之对应的JavaScript对象  var res = $.parseJSON(data).ds

将json字符串反序列化为DataTable 对JsonConvert的补充

/// <summary> /// 扩展方法,将一个Json字符串反序列化为DataTable /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="str"></param> /// <returns>DataTable</returns> public static DataTab

C#对象转JSON字符串和JSON字符串转对象

C#对象转JSON字符串和JSON字符串转对象 /* 创建者:菜刀居士的博客 * 创建日期: 2014年09月03号 * 功能: Json操作 *  */ namespace Net.String.ConsoleApplication {    using System;    using System.Data;     using System.Collections;    using System.ComponentModel;    using System.Collections.G

使用Newtonsoft JsonConvert反序列化Json数据到DataTable

1 //JsonStr为Json字符串 2 JArray array = JsonConvert.DeserializeObject(JsonStr) as JArray;//反序列化为数组 3 if (array.Count > 0) 4 { 5 StringBuilder columns = new StringBuilder(); 6 DataTable table = new DataTable(); 7 JObject objColumns = array[0] as JObject;

基于Reflect将List泛型数据源转换为Json字符串

在Web开发中,较为常用的数据传递格式为json键值对字符串格式,而在普遍的ORM全映射或半映射技术中,从后端所获得的数据往往是Enumerable或是List<T>类型的数据,因此做了一个通用类,实现将List<T>类型的数据向json格式数据的转换.代码如下: 首先建立一个基于Reflect的基础类Reflect,实现对名称为给定字符串的属性的赋值或取值操作: 1 using System; 2 using System.Collections.Generic; 3 using