将JSON转成DataSet(DataTable)

方法1:

 /// <summary>/// 将JSON解析成DataSet只限标准的JSON数据/// 例如:Json={t1:[{name:'数据name',type:'数据type'}]} /// 或 Json={t1:[{name:'数据name',type:'数据type'}],t2:[{id:'数据id',gx:'数据gx',val:'数据val'}]}/// </summary>/// <param name="Json">Json字符串</param>/// <returns>DataSet</returns>public static DataSet JsonToDataSet(string Json){try{DataSet ds = new DataSet();JavaScriptSerializer JSS = new JavaScriptSerializer();object obj = JSS.DeserializeObject(Json);Dictionary<string, object> datajson = (Dictionary<string, object>)obj;foreach (var item in datajson){DataTable dt = new DataTable(item.Key);object[] rows = (object[])item.Value;foreach (var row in rows){Dictionary<string, object> val = (Dictionary<string, object>)row;DataRow dr = dt.NewRow();foreach (KeyValuePair<string, object> sss in val){if (!dt.Columns.Contains(sss.Key)){dt.Columns.Add(sss.Key.ToString());dr[sss.Key] = sss.Value;}elsedr[sss.Key] = sss.Value;}dt.Rows.Add(dr);}ds.Tables.Add(dt);}return ds;}catch{return null;}}

方法2:

        /// <summary>   /// 根据Json返回DateTable,JSON数据格式如:   /// {table:[{column1:1,column2:2,column3:3},{column1:1,column2:2,column3:3}]}   /// items:{"2750884":{clicknum:"50",title:"鲍鱼",href:"/shop/E06B14B40110/dish/2750884#menu",desc:"<br/>",src:"15f38721-49da-48f0-a283-8057c621b472.jpg",price:78.00,units:"",list:[],joiner:""}}/// </summary>   /// <param name="strJson">Json字符串</param>   /// <returns></returns>   public static DataTable JsonToDataTable(string strJson){//取出表名   //var rg = new Regex(@"(?<={)[^:]+(?=:\[)", RegexOptions.IgnoreCase);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(@"(?<={)[^}]+(?=})");rg = new Regex(@"(?<={)[^}]+(?=})");System.Text.RegularExpressions.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];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("\"", "");dr[r] = strRows[r];}tb.Rows.Add(dr);tb.AcceptChanges();}return tb;}

 

转载于:https://www.cnblogs.com/elves/p/3604499.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493391.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AlphaGo之后,DeepMind重磅推出AlphaFold:基因序列预测蛋白质结构

来源&#xff1a;机器之心摘要&#xff1a;Alphabet&#xff08;谷歌&#xff09;旗下公司 DeepMind 的人工智能 AlphaGo 曾在国际象棋、围棋等项目中取得了超越人类的表现&#xff0c;其研究不仅震惊世界&#xff0c;也两次登上 Nature。如今&#xff0c;该公司已将人工智能技…

Web开发之容器

Web开发之容器 主题 Servlet容器、Web容器、应用服务器 参考资料 Servlet容器、Web容器、应用服务器 Servlet容器的主要任务是管理Servlet的生命周期&#xff1b;而Web容器更准确的说应该叫做Web服务器&#xff0c;它是用来管理和部署Web应用的&#xff1b;还有一种服务器叫做应…

李开复看2019投资趋势:最坏的时代将酝酿最伟大的公司

来源&#xff1a;网易智能摘要&#xff1a;12月3日下午&#xff0c;创新工场在北京举办了2019投资趋势分享会。创新工场创始人、董事长兼CEO李开复&#xff0c;创新工场联合创始人、管理合伙人汪华与创新工场合伙人张鹰对目前中国经济形势和投资趋势做了分析。01最坏的时代将酝…

高斯混合模型做聚类

概述 聚类算法大多数采用相似度来判断&#xff0c;而相似度又大多数采用欧式距离长短来衡量&#xff0c;而GMM采用了新的判断依据—–概率&#xff0c;即通过属于某一类的概率大小来判断最终的归属类别 。 GMM的基本思想就是&#xff1a;任意形状的概率分布都可以用多个高斯分…

C#使用HTML文件中的file文件上传,用C#代码接收上传文件

单独做图片上传很简单&#xff0c;如果要客户端要上传头像保存到服务器就要稍微麻烦一点点了。 不多说了&#xff0c;直接上源码&#xff1a; private void Upload() { string jsonInfo string.Empty; ///这句是关键&#xff0c;它是获取HTTP中文件流 的对象集合。 Ht…

基于深度学习的NLP 32页最新进展综述,190篇参考文献

来源&#xff1a;专知摘要&#xff1a;深度学习使用多层学习层次的数据表示,并在许多领域得到了最优的结果。最近,各种各样的模型设计和方法在自然语言处理(NLP)蓬勃发展。在本文中,我们回顾了被广泛应用于各种NLP任务的深度学习相关模型和算法以及它们的发展演变过程。我们还总…

.net framework摘抄与理解

1."源码"编译成"托管模块": 2.将"托管模块"合并成"托管程序集" 3.clr中的"JIT"执行"托管程序集" 第二次执行已被JIT编译成机器码的Console.WriteLine("") 转载于:https://www.cnblogs.com/doujiaomifan…

“新一代人工智能前沿与挑战”国际研讨会专家观点分享

来源&#xff1a;西电人工智能学院摘要&#xff1a;2018年11月25日-26日举办的“新一代人工智能前沿与挑战”中青年论坛暨第二十一届学术周在西安电子科技大学圆满落幕&#xff0c;研讨会上包括长江学者、IEEE Fellow、领域顶尖中青年学者、新锐企业领导者等在内的国内外权威专…

决策树算法及可视化

经典决策树算法包括ID3算法、C4.5算法以及GBDT的基分类器CART算法 ,ID3算法选择特征的依据是信息增益、C4.5是信息增益比&#xff0c;而CART则是Gini指数。 例子: 所谓信息增益就是数据在得到特征X的信息时使得类Y的信息不确定性减少的程度。假设数据集D的信息熵为H(D)&#x…

ListView排序并隔色显示

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; using System.Windows.Forms; using System.Drawing;namespace STools {class ListViewColumnSorter : IComparer{/**//// <summary>/// 指定按照哪个…

python多进程并发+pool多线程+共享变量

一&#xff0e;多进程 当计算机运行程序时&#xff0c;就会创建包含代码和状态的进程。这些进程会通过计算机的一个或多个CPU执行。不过&#xff0c;同一时刻每个CPU只会执行一个进程&#xff0c;然后不同进程间快速切换&#xff0c;给我们一种错觉&#xff0c;感觉好像多个程…

高通骁龙855发布,5G大幕拉开,新一轮手机大战在即

来源&#xff1a;网易智能摘要&#xff1a;高通终于公布下一代移动芯片骁龙855。美国时间12月4日&#xff0c;高通在美国夏威夷召开了第三届高通骁龙技术峰会&#xff0c;在峰会首日&#xff0c;骁龙855正式发布。并非外界传言的8150&#xff0c;高通还是沿用了之前的命名规则。…

机器学习的几种方法(knn,逻辑回归,SVM,决策树,随机森林,极限随机树,集成学习,Adaboost,GBDT)

一.判别模式与生成模型基础知识 举例&#xff1a;要确定一个瓜是好瓜还是坏瓜&#xff0c;用判别模型的方法是从历史数据中学习到模型&#xff0c;然后通过提取这个瓜的特征来预测出这只瓜是好瓜的概率&#xff0c;是坏瓜的概率。 举例&#xff1a;利用生成模型是根据好瓜的特…

大端小端模式

大端小端模式是指内存中的数据存储方式。 大端模式&#xff0c;指数据的高位字节存在内存的低地址&#xff0c;数据的低位字节存在内存的高地址。 小端模式&#xff0c;指数据的高位字节存在内存的高地址&#xff0c;数据的低位字节存在内存的低地址。 如十六进制数0x12345678&…

京东物联网战略大升级|与华为合作,疯狂发布新品,“养鱼”的京东正在物联网赛道上花式秀技术...

来源&#xff1a;物联网智库12月4日下午&#xff0c;在“智联万物 新响无限”2018年京东IoT战略发布会上&#xff0c;京东发布了其IoT领域的最新战略规划&#xff0c;推出了新的品牌“京鱼座”&#xff0c;还推出一系列合作品牌与硬件产品&#xff0c;该战略不仅是对去年5月9日…

centos下apache安装

安装环境&#xff1a;centos查找可安装的包&#xff1a;yum list httpd*安装&#xff1a;yum install httpd.x86_64查看安装包的所有安装文件&#xff1a;rpm -ql httpd 配置文件&#xff1a;/etc/httpd/conf/httpd.conf日志目录&#xff1a;/etc/httpd/logs页面存放路径&…

电动车的惊世骗局

来源&#xff1a;世界科技创新论坛摘要&#xff1a;新能源是一个很好的机会&#xff0c;技术也没有瓶颈&#xff0c;如果发展对了方向&#xff0c;十年扶持一两个世界领先水平的企业是没问题的。但如果有人趁机“钻空子”&#xff0c;让有限的资源被浪费&#xff0c;怕是很难有…

语义分割中的类别不平衡的权重计算

这是5幅图&#xff0c;加上背景共5类。 可以参考这篇文章https://blog.csdn.net/u012426298/article/details/81232386 对于一个多类别图片数据库&#xff0c;每个类别都会有一个class frequency, 该类别像素数目除以数据库总像素数目, 求出所有class frequency 的median 值&…

盘点百度、阿里、腾讯、华为自动驾驶战略

来源&#xff1a;智车科技摘要&#xff1a;本文中盘点了百度、阿里、腾讯、华为四家巨头的自动驾驶事迹&#xff0c;以及从车路协同、车联网、高精度地图等方面对四家公司进行了梳理。今年阿里9 月云栖大会、华为10 月全联接大会、百度11 月世界大会、腾讯11 月合作伙伴大会可以…

N 组连续子串最大和

数组 a 中有 M 个数 &#xff0c; 将 M 个数分成 N 组 &#xff0c; 并且每组中的数据顺序和原数组中的顺序保持一致&#xff0c;求 N 组中的数据之和最大为多少&#xff1f; 向 dp 数组中赋初始值 &#xff0c;如果 M N &#xff0c;则 dp[ i ][ i ] dp[ i - 1 ][ i - 1 ] …