/// <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();                        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;        }

转载于:https://www.cnblogs.com/520lw/p/3957349.html

JSon转化为DaTable相关推荐

  1. Jackson通过反射将Json转化为java对象

    Jackson的功能比较强大,我们这里主要使用Data Binding的方式,来看看如何使用反射将json转化为java bean,先加入如下依赖: Jackson 的核心模块由三部分组成. jack ...

  2. JavaScriptSerializer-枚举的JSON序列化为字符串

    我有一个包含enum属性的类,并在使用JavaScriptSerializer序列化对象后,我的json结果包含枚举的整数值,而不是其string " name". 有没有一种方法 ...

  3. json反射java对象_Jackson通过反射将Json转化为java对象

    Jackson的功能比较强大,我们这里主要使用Data Binding的方式,来看看如何使用反射将json转化为java bean,先加入如下依赖: Jackson 的核心模块由三部分组成. jack ...

  4. 是否可以将 json 反序列化为 dynamic 对象?

    咨询区 jswanson: 是否有方法可以将 json 反序列化为 dynamic 对象,如果可以实现的话,那我就可以省去很多冗余类. 回答区 Tom Peplow: 如果你用 Json.NET 的话 ...

  5. MongoDB C#:如何将包含DateTime的JSON反序列化为正确的BsonDocument DateTime值

    目录 介绍 背景 使用代码 兴趣点 如果您的Json包含日期时间值如"2018-11-23T20:56:05.3117673Z"并且您需要将其作为正确的BsonDateTime值放 ...

  6. excel转json_如何一键把json转化为Excel json2excel

    如何把json转化为Excel json2excel JSON是码农们常用的数据格式,轻且方便,而直接手敲JSON却是比较麻烦和令人心情崩溃的(因为重复的东西很多),并且现在很多普通用户也需要把jso ...

  7. json转化为dataframe 和dataframe转化为json

    1.json转化为dataframe 简单json转化方法: import pandas as pd df = pd.read_json("test.json",encoding= ...

  8. Java系列之:ObjectMapper实现对象转化为Json、集合转化为Json、Json转化为对象、Json转化为JsonNode、JsonNode转化为Json字符串

    Java系列之:ObjectMapper实现对象转化为Json.集合转化为Json.Json转化为对象.Json转化为JsonNode.JsonNode转化为Json字符串 一.创建类Dataset ...

  9. behave结果转化为cucumber结果,主要用于将behave.json转化为cucumber.json

    前言 该python库主要用于将behave框架生成的behave.json转化为cucumber.json,使用cucumber的报告插件可以对behave生成结果进行解析,展示.为什么我会单独进行 ...

最新文章

  1. ubuntu下使用yocto制作龙芯文件系统
  2. 查询阜阳2021高考成绩,今年阜阳高考状元名单是谁,2021年阜阳高考状元多少分
  3. 大厂开发“大牛”,你距离他们有多远?
  4. ENSP安装教程【手把手教学】
  5. s7-200通信测试软件,S7-200 SMART 与调试助手之间 TCP 通信[技术学习]
  6. wpa_supplicant状态机
  7. android获取SIM卡信息和手机号码
  8. Leetcode237之删除链表中的节点
  9. widows 下git记住账号密码
  10. Spring boot+Mybatis连接多种数据库oracle,mysql,sqlserver
  11. Linux下DMA驱动
  12. php array =%3e变,https ipcrs.pbccrc.org.cn php的json和数组转换
  13. 用于指定服务器软件产品的名称,[单选] 下列说明乙肝患者病情已恢复的是()...
  14. 通过网络共享将 Windows 10 的文件复制到 iPhone 手机上
  15. 微搭低代码h5页面ios系统上拉下拉出现空白问题
  16. np.degrees()
  17. Python+Twisted+Autobahn实现Websocket(附完整demo)
  18. 软考中级哪个通过率高且简单?
  19. java 调用scp命令,scp命令的使用
  20. 全球与中国先进暖通空调(HVAC)控制市场深度研究分析报告

热门文章

  1. 把python安装到u盘无法使用_U盘无法使用不能用怎么办解决教程
  2. golang | 使用结构体抄的学生信息管理系统
  3. VMware vSAN 技术详解 | 周末送资料
  4. Spring Cloud 与微服务学习总结(16)—— 微服务架构统一安全认证设计与实践
  5. 消息中间件学习总结(3)——RocketMQ之十分钟入门RocketMQ
  6. Linux学习总结(26)——Shell常用命令总结
  7. linux查看网卡硬件 lsw,无人值守网络安装Linux系统
  8. java hasnextdouble_scanner.nextInt()与scanner.nextDouble
  9. 哪些是计算机应用基金,计算机应用的基金有哪些
  10. SpiderKeeper的使用