如何将数据库SQL查询结果直接转为JSON

92次阅读
没有评论

共计 1515 个字符,预计需要花费 4 分钟才能阅读完成。

这篇文章给大家介绍如何将数据库 SQL 查询结果直接转为 JSON,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

JSON 是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

SQL 与 Json

SQLServer 对从 2016 开始添加了对 Json 数据的支持,我们可以很轻松的将查询的数据通过 SQL 语句直接转成 Json 格式,这对我们存储和交互数据提供了一个很好的途径。

今天我们就说说在 SQLServer 中如何将查询结果生成 Json 文本。

测试数据准备

为了测试效果,我们先准备测试数据,这里做一个简单的销售表:

declare @sale table( FName nvarchar(50), FDistrict nvarchar(50), FAmount decimal(28,10) ); insert into @sale values (张三 , 北京 ,20000), (张三 , 上海 ,50000), (张三 , 深圳 ,40000), (张三 , 广州 ,30000), (李四 , 北京 ,30000), (李四 , 上海 ,50000), (李四 , 深圳 ,40000), (李四 , 广州 ,10000);

 

演示数据

神奇的 for json auto 子句

在查询的 from 子句中加上 for json auto,查询结果就会自动转成 json 文本,这是最简单的一种转换方式。

select *from @sale for json auto

查询的结果就是 json 文本了。

 

查询结果自动转成 Json

把 Json 抓取出来,效果如下:

 

自动导出的 Json 文本

是否感觉很神奇,如果您觉得 SQLServer 对导出 Json 的支持仅仅如此,那您就太小看微软了,下面我们再说说更强大的导出功能。

神奇的 for json path 子句

见识了神奇的 for json auto 子句,我们在看看另一个神奇的 for json path 子句,该子句使用列别名或列名来确定 JSON 输出中的键名称。

比如我们把“姓名”作为一个顶层节点,把区域和销售额设置一个上级节点“销售情况”:

select FName as  姓名, FDistrict as  销售情况. 区域 , FAmount as  销售情况. 金额  from @sale for json path

查询的结果也是 Json 文本:

 

查询结果自动转成 Json

把 Json 抓取出来,效果如下:

 

自动导出的 Json 文本

有没有发现什么不同?“销售情况. 区域”、“销售情况. 金额”中的点号,自动将“销售情况”作为了上级节点,“区域”和“金额”作为了子节点。

神奇的 ROOT 选项

对 Json 比较熟悉的朋友会发现,for json auto 和 for json path 导出的 Json 直接是数组,每条记录就是一个数组元素,缺少了根节点,如果我们想要给 Json 加一个根节点要怎么做呢?

SQLServer 提供了 Root 选项来完成根节点的添加工作:

select FName as  姓名, FDistrict as  销售情况. 区域 , FAmount as  销售情况. 金额  from @sale for json path, root(业务信息 

查询的结果仍然是 Json 文本:

 

查询结果自动转成 Json

把 Json 抓取出来,效果如下:

 

自动导出的 Json 文本

可以看到 Json 添加了根节点“业务信息”。

关于如何将数据库 SQL 查询结果直接转为 JSON 就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-19发表,共计1515字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)