宝哥软件园

在ASP中将Json数据转换为ADO.NET数据集对象 网

编辑:宝哥软件园 来源:互联网 时间:2021-09-09

有很多方法可以将Json数据转换成ADO.NET数据集。牛顿英尺。Json还为数据集提供了一个Converter来转换Json数据。但是,在某些情况下,数据集转换器不起作用,它可能无法满足项目的需求。本文介绍了另一种简单有效的方法,可以方便快捷地将Json数据转换成ADO.NET数据集。

设计

事实上,牛顿索夫。Json提供了一套完整的Json数据文档结构,这个文档结构的对象模型是在Newtonsoft下提供的。Json.Linq命名空间。因此,我们可以借用这个模型,在其上应用Visitor (GoF95)模式,遍历树形结构的对象模型,从而实现ADO.NET数据表、数据关系和数据集的创建。基本对象模型如下:

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

表演

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

1.正则表达式2。路径属性

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

另一方面,对于ADO.NET数据表和数据关系的构建,性能相当高,不用担心。一般来说,将15MB的Json数据转换成DataSet只需要4秒左右,感兴趣的朋友可以基于这段代码进一步优化。

Call已经在开源项目的主页上解释过了。很简单:

复制代码如下: varjson=file . readall text(@ ' d : test . JSON ');var dataSet=json2 datasetconverter。convert(JSON);例如,调用RESTful API获取Json Response后,直接将返回的结果转换为DataSet,在Visual Studio Debug Visualizer for DataSet中看到某个公司的客户信息以及这些客户完成的订单数据:

app应用

TIBCO Spotfire是全球先进的数据分析软件,不仅功能强大,还可以为其定制数据导入插件,方便地将外部数据导入其中进行分析。它以表格的形式集成和分析数据。因此,它很好地支持ADO.NET数据集,可以方便地导入ADO.NET数据集包含的表数据。

有一个RESTful API,可以获取世界上所有国家的列表信息,包括名称、语言、人口、与国家接壤的国家数量等等。应用编程接口的地址是:

复制代码如下:获得http://restcountries.eu/rest/v1/all

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

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

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

更多资讯
游戏推荐
更多+