内容简介:JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。SQL与JsonSQLServer对从2016开始添加了对Json数据的支持,我们可以很轻松的将查询的数据通过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添加了根节点“业务信息”。
希望对您有所帮助!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 4 万字全面掌握数据库、数据仓库、数据集市、数据湖、数据中台
- Python3爬虫数据入数据库---把爬取到的数据存到数据库,带数据库去重功能
- Oracle数据库查询重复数据及删除重复数据方法
- sqlserver数据库获取数据库信息
- 从大数据到数据库
- node连接oracle数据库,更新数据后,数据库中不生效问题
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Domain-Driven Design
Eric Evans / Addison-Wesley Professional / 2003-8-30 / USD 74.99
"Eric Evans has written a fantastic book on how you can make the design of your software match your mental model of the problem domain you are addressing. "His book is very compatible with XP. It is n......一起来看看 《Domain-Driven Design》 这本书的介绍吧!