SQL Server 2016新特性: 对JSON的支持

时间:2021-03-23 16:27:27



SQL Server 2005开始支持XML数据类型,提供原生的XML数据类型、XML索引及各种管理或输出XML格式的函数。随着JSON的流行,SQL
Server2016开始支持JSON数据类型,不仅可以直接输出JSON格式的结果集,还能读取JSON格式的数据。对于有用到JSON格式的应用程式来说,这无疑是一利器,因为不再需要使用JSON.Net这类工具进行分析和处理JSON数据,直接利用SQL
Server内置函数就可以处理,轻松将查询结果输出为JSON格式,或者搜索JSON文件内容。下面通过实例的方式,展现SQL
Server 2016这一新功能。

下面是我们熟悉的SELECT及输出格式,后面对JSON的演示基于此SQL:

SQL Server 2016新特性: 对JSON的支持

一、  将查询结果输出JSON格式

1 要将SELECT语句的结果以JSON输出,最简单的方法是在后面加上FOR
JSON AUTO:

SQL Server 2016新特性: 对JSON的支持

2 若要为FOR JSON加上Root
Key,可以用ROOT选项来自定义ROOT
Key的名称:

SQL Server 2016新特性: 对JSON的支持

若要自定义输出JSON格式的结构是,必须使用JSONPATH。若SELECT的列中,存在列名名称相同时,必须用别名重命名才能正常查询,否则会报类似下面错误提示:

SQL Server 2016新特性: 对JSON的支持

3  JSON PATH输出:

SQL Server 2016新特性: 对JSON的支持

4  JSONPATH+ROOT输出:

SQL Server 2016新特性: 对JSON的支持

5 为NULL的数据在输出JSON时,会被忽略,若想要让NULL的字段也显示出来,可以加上选项INCLUDE_NULL_VALUES,该选项也适用于AUTO。

SQL Server 2016新特性: 对JSON的支持

6 带有层级关系的,可以增加节点,比如下面的SQL,增加了一个“SN”节点,把栏位SERNUM和CLIMAT放在里面:

SQL Server 2016新特性: 对JSON的支持

二、  解析JSON格式的数据

1 使用OPENJSON()函数:

SQL Server 2016新特性: 对JSON的支持

2 通过WITH选项,自定义输出列:

SQL Server 2016新特性: 对JSON的支持

转载来源:https://blog.csdn.net/Burgess_Liu/article/details/51557331