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

本文介绍了如何在不使用Newtonsoft.Json内置的DataSet Converter时,通过设计模式和Json对象模型转换Json数据到ADO.NET DataSet。文章讨论了设计思路、性能优化点,如避免使用JToken.Path,并提供了调用示例。此外,还展示了如何将转换后的DataSet应用于TIBCO Spotfire数据分析,以实现从RESTful API高效导入全球国家数据。


3493

被折叠的 条评论
为什么被折叠?



