数据库大师成长日记:将数据库SQL查询结果直接转为JSON

栏目: 数据库 · 发布时间: 7年前

内容简介:JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。SQL与JsonSQLServer对从2016开始添加了对Json数据的支持,我们可以很轻松的将查询的数据通过SQL语句直接转成Json格式,这对我们存储和交互数据提供了一个很好的途径。

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

数据库大师成长日记:将数据库 <a href='https://www.codercto.com/topics/18630.html'>SQL</a> 查询结果直接转为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); 
数据库大师成长日记:将数据库SQL查询结果直接转为JSON

演示数据

神奇的for json auto子句

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

select * from @sale  for json auto 

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

数据库大师成长日记:将数据库SQL查询结果直接转为JSON

查询结果自动转成Json

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

数据库大师成长日记:将数据库SQL查询结果直接转为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文本:

数据库大师成长日记:将数据库SQL查询结果直接转为JSON

查询结果自动转成Json

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

数据库大师成长日记:将数据库SQL查询结果直接转为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文本:

数据库大师成长日记:将数据库SQL查询结果直接转为JSON

查询结果自动转成Json

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

数据库大师成长日记:将数据库SQL查询结果直接转为JSON

自动导出的Json文本

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

希望对您有所帮助!


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

百度SEO一本通

百度SEO一本通

潘坚、李迅 / 电子工业出版社 / 2015-6 / 59.00元

《百度SEO一本通》通过浅显易懂的叙述方式,以及大量的图示,详细介绍了SEO的关键技术要点,对于搜索引擎优化中重要的关键词优化、链接优化,以及百度推广中的推广技巧都进行了详细的介绍。 《百度SEO一本通》共分为11章,首先让大家了解SEO存在的原因,然后对网页、网站、空间和程序与SEO的关系展开了细节上的讨论,最后几章深入介绍了百度推广的相关概念、设置、技巧和实操,让读者可以轻松上手操作,易......一起来看看 《百度SEO一本通》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

随机密码生成器
随机密码生成器

多种字符组合密码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具