• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > ASP.NET中实现把Json数据转换为ADO.NET DataSet对象

ASP.NET中实现把Json数据转换为ADO.NET DataSet对象

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了ado.net与asp.net,json asp.net,asp.net,asp net培训,asp和asp.net的区别等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Json数据转换为ADO.NET DataSet其实方法有很多,Newtonsoft.Json也提供了DataSet的Converter用以转换Json数据。但是有些情况下DataSet Converter并不管用,而且也不一定能够满足项目需要。这里介绍另一种简单有效的方法,能够方便快速地将Json数据转为ADO.NET DataSet。

设计

事实上Newtonsoft.Json已经提供了一套完整的Json数据文档结构,Newtonsoft.Json.Linq命名空间下提供了这种文档结构的对象模型,因此我们可以借用这样的模型,在其上应用访问者(Visitor,GoF95)模式,对树状结构的对象模型进行遍历,以达到ADO.NET DataTable、DataRelation的创建以及DataSet的生成。基本对象模型如下:

其实实现起来还是非常简单的,我已经把完整的项目和单元测试开源到GitHub上。具体的代码可以参考https://github.com/daxnet/Json2DataSet开源项目。

性能

性能方面,在实现的过程中,我发现有两个地方是性能瓶颈:

1.正则表达式
2.JToken.Path属性

如果在你的代码中需要高频率地反复调用这两种操作,那么你就需要考虑性能问题。尤其是JToken.Path属性,它的内部实现牵涉到链表数据结构、复杂循环等,因此效率不是很高,应该尽量避免使用这一属性(当然我开源的代码中还有一处在调用该属性,可以进一步优化)。

另一方面,对于ADO.NET DataTable和DataRelation的构建,性能还是相当高的,无需担心。总体上看,将15MB的Json数据转换为DataSet仅需4秒左右,有兴趣的朋友还可以在该代码基础上进一步优化。

调用
在该开源项目主页上已经说明了调用方式。很简单:

var json = File.ReadAllText(@"d:\test.json");
var dataSet = Json2DataSetConverter.Convert(json);
</div>
比如通过调用某个RESTful API,获得Json Response以后,直接将返回结果转换为DataSet,并在Visual Studio Debug Visualizer for DataSet中看到某公司的客户信息,以及这些客户所完成的订单数据:

应用

TIBCO Spotfire是一种世界先进的数据分析软件,不仅功能强大,还可以为其定制数据导入插件,方便地将外部数据导入其中进行分析。它是以表的形式对数据进行整合和分析的,因此,它对ADO.NET DataSet的支持是非常好的,能够很方便地将ADO.NET DataSet中所包含的表数据导入。

现有一个RESTful API,它能够获取全世界所有国家的列表信息,包括国家名称、语言、人口、与该国接壤的国家数量等等。该API的地址是:

GET http://restcountries.eu/rest/v1/all
</div>

好了,现在我开发了一个非常简单的插件,可以通过GET命令,从RESTful API导入数据到TIBCO Spotfire中:

导入数据后,我可以立刻分析出哪个国家人口比重最大,哪个国家与其接壤的国家数量最多:

看,我国不仅人口最多(占世界人口的19%),而且与我国接壤的国家数量最多(15个)。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ASP.NET中实现把Json数据转换为ADO.NET DataSet对象
  • asp.net中ADO SQL数据库 笔记汇总 持续更新中
  • asp.net与Discuz!NT整合集成实例教程
  • asp.net 对中文汉字的加密与解密代码
  • ASP.NET:ADO.NET的DataAdapter对象
  • ASP.NET与MySQL数据库简明图示入门教程

相关文章

  • 2017-05-11asp.net(c#)判断远程图片是否存在
  • 2017-05-11设置ASP.NET页面的运行超时时间详细到单个页面及站点
  • 2017-05-11asp.net中用DataReader高效率分页
  • 2017-05-11ASP.NET2.0中数据源控件之异步数据访问
  • 2017-05-11基于ASP.NET+EasyUI框架实现图片上传提交表单功能(js提交图片)
  • 2017-05-11asp.net保存网上图片到服务器的实例
  • 2017-05-11ASP.NET实现用图片进度条显示投票结果
  • 2017-05-11ASP.NET 页面中动态增加的控件、添加事件第1/2页
  • 2017-05-11ASP.NET笔记之Calender的使用说明
  • 2017-05-11asp.net中动态改变网页标题的代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 使用DataTable.Select 方法时,特殊字符的转义方法分享
    • asp.net保存网上图片到服务器的实例
    • 合并网页中的多个script引用实现思路及代码
    • asp.net(c#)文件下载实现代码
    • C#处理Json的另外一种方式成功实践
    • Visual Studio 2017+OpenCV环境搭建教程
    • VS2008无法直接查看STL值的解决方法
    • .net出现80080005错误的解决办法分享
    • ASP.NET中Label控件用法详解
    • VS2012/VS2013本地发布网站步骤详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有