`

C# 将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('*');

            //创建表   
            if (tb == null)
            {
                tb = new DataTable();
                tb.TableName = strName;
                foreach (string str in strRows)
                {
                    var dc = new DataColumn();
                    if (str.Contains("#"))
                    {
                        string[] strCell = str.Split('#');

                        if (strCell[0].Substring(0, 1) == "\"")
                        {
                            int a = strCell[0].Length;

                            if(a>2)
                            {
                                dc.ColumnName = strCell[0].Substring(1, a - 2);
                            }
                       
                        }
                        else
                        {
                            dc.ColumnName = strCell[0];
                        }
                        tb.Columns.Add(dc);
                    }
                    
                }
                tb.AcceptChanges();
            }

            //增加内容   
            DataRow dr = tb.NewRow();
            int k = 0;
            for (int r = 0; r < strRows.Length; r++)
            {
                if (strRows[r].Contains("#"))
                {
                    dr[k] = strRows[r].Split('#')[1].Trim().Replace(",", ",").Replace(":", ":").Replace("\"", "");
                }
                else
                {
                    k = r - 1;
                }

                k++;
               
            }
            tb.Rows.Add(dr);
            tb.AcceptChanges();
        }

        return tb;
    }


分享到:
评论

相关推荐

    C# json 转换成DataTable

    因此,将 JSON 数据转换成 `DataTable` 是一个常见的需求。本文将详细分析如何在 C# 中实现这一转换过程。 #### 方法详解 根据给定的部分代码内容,我们可以看到这是一个名为 `ToDataTable` 的静态方法,其功能是...

    C#将json格式转换成DataTable实例

    在.NET开发环境中,C#语言提供了丰富的库和方法来处理数据操作,其中之一就是将JSON格式的数据转换为DataTable对象。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web服务和前后端交互...

    C#实现将json转换为DataTable的方法

    总结来说,将JSON转换为DataTable是C#中处理数据的一个常见需求,本文提供的方法提供了一个基础的实现思路。在实际开发中,你可能还需要根据具体需求,结合其他库如Newtonsoft.Json或System.Text.Json进行更高级的...

    C#实现Json转DataTable并导出Excel的方法示例

    Json转换DataTable是指将Json字符串转换为DataTable对象的过程。这里,我们将介绍两种类型的Json转换DataTable方法。 1. 处理简单Json 简单Json是一种最基本的Json格式,例如: ```json [{"mac":"20:f1:7c:c5:cd:...

    c#常用的Datable转换为json,以及json转换为DataTable操作方法

    c#常用的Datable转换为json,以及json转换为DataTable操作方法 * 备注信息: 上传部分自己总结的常用方法的封装,有不足和不完美之处,希望大家指出来,愿意一起 * 主要研究erp,cms,crm,b2b,oa等系统和网站的开发...

    C#的Json操作类,支持数组,DataTable,DataReader等转Json

    C#的Json操作类,支持数组,DataTable,DataReader等转Json

    C# Json转换DataTable源文件

    总结起来,C#中将Json转换为DataTable是一项常见的任务,尤其在处理来自Web服务的数据时。了解如何有效地进行这个转换可以帮助开发者更好地管理和操作数据。无论是使用内置的System.Json库还是流行的Newtonsoft.Json...

    c#中把DataTable、Dataset转Json数据.docx

    C#中有多种方法可以将DataTable、Dataset转换为Json数据。下面我们来介绍两种常见的方法: 一、DataTable转换为Json数据 DataTable是一种常用的数据存储方式,在C#中我们可以使用DataTable来存储和处理数据。为了...

    c#jsonHelpjson解析实例json转datatable实例

    本篇文章将详细介绍如何在C#中使用JSON帮助器类进行JSON解析,并将JSON数据转换为DataTable实例。 首先,我们需要引用`Newtonsoft.Json`库,这是.NET中最流行的JSON处理库,也称为Json.NET。你可以通过NuGet包管理...

    Json字符串转换Hashtable,DataTable,DataSet方法和反转换方法

    最后,我们将JSON转换为DataSet。DataSet可以包含多个DataTable,因此转换过程会稍微复杂些: ```csharp using Newtonsoft.Json; using System.Data; string json = @"{ 'Table1': [{'Column1':'Value1','Column2'...

    C# JSON通用转换类

    3. List转换成Json 4. 对象转换为Json 5. 对象集合转换Json 6. 普通集合转换Json 7. DataSet转换为Json 8. Datatable转换为Json 9. DataReader转换为Json 10. 解析JSON字符串生成对象实体 11. 解析JSON数组生成对象...

    将DataTable转化为JSON

    本文将详细介绍如何使用C#语言将`DataTable`转换为JSON格式。 #### 二、知识点详解 ##### 2.1 DataTable简介 `DataTable`是.NET框架中用于在内存中存储和操作数据的一种方式。它类似于关系数据库中的一个表,支持...

    C# 转换实体类为Json字符串

    实体类转换成 JSON 字符串,将datatable转换为json,DataTable转换实体类

    Datatable和json互相转化代码

    - **JavaScriptSerializer**: `JavaScriptSerializer`类是.NET框架提供的一个序列化/反序列化工具,它可以将.NET对象转换成JSON字符串或从JSON字符串转换成.NET对象。 - **MaxJsonLength**: 由于默认情况下,`...

    datatable转换成JSON格式的方法

    有时,我们需要将DataTable中的数据转换成JSON格式,以便在网络间进行传输或存储。XML也是一种常见的数据格式,与JSON类似,但转换过程略有不同。 首先,让我们详细讨论如何将DataTable转换为JSON格式。在.NET ...

    C#Newtonsoft.Json.dll类json转化

    /// DataTable 转换为 Json 字符串 string JsonString = JsonConvert.SerializeObject(ds); Json 字符串 转换为 DataTable DataTable Data = Newtonsoft.Json.JsonConvert.DeserializeObject(Json, typeof...

    C# DataTable json

    在标题"C# DataTable json"中提到的知识点主要是如何将C#中的`DataTable`对象转换成JSON格式,以便与使用EasyUI的前端交互。EasyUI是一个基于jQuery的UI框架,它提供了丰富的组件,如数据网格、表单、对话框等,这些...

    C#构造Json数组

    通过上述代码,我们可以在C#中轻松地将`DataTable`对象转换成JSON数组格式,这对于Web应用中的前后端数据交换具有重要的意义。虽然这段代码没有使用任何第三方库,但在实际开发中,使用如`Newtonsoft.Json`这样的库...

Global site tag (gtag.js) - Google Analytics