MS SQL读取JSON数据

Posted insus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MS SQL读取JSON数据相关的知识,希望对你有一定的参考价值。

前面有一篇《在SQL中直接把查询结果转换为JSON数据https://www.cnblogs.com/insus/p/10905566.html,是把table转换为json。

现反过来,当SQL从前端接收过来的数据是JSON的话,需要把它转换为TABLE。在MS SQL Server 2016有一个方法,OPENJSON。

DECLARE @json_text NVARCHAR(MAX)
SET @json_text = 
 N
 {
     "DB Type":
     [
        {"type":"AF","desc":"聚合函数(CLR)"},
        {"type":"F","desc":"FOREIGN KEY 约束"},
        {"type":"FN","desc":"SQL 标量函数"},
        {"type":"FS","desc":"程序集(CLR)标量函数"},
        {"type":"FT","desc":"程序集(CLR)表值函数"},
        {"type":"RF","desc":"复制筛选过程"},
        {"type":"IF","desc":"SQL 内联表值函数"},
        {"type":"TF","desc":"SQL 表值函数"}
     ]
 }
   

 

读取JSON文本的key,value,type和type说明:

技术图片

技术图片
SELECT [key],[value],[type],[dbo].[svf_JSONDataType]([type]) AS data_type FROM  
OPENJSON (@json_text)  
Source Code

 

下面是真正把JSON转TABLE:

技术图片

 

技术图片
SELECT [type],[desc] FROM  
OPENJSON (@json_text ,$."DB Type")  
WITH
(
    [type] NVARCHAR(20) $.type,
    [desc] NVARCHAR(40) $.desc
)
Source Code

 

以上是关于MS SQL读取JSON数据的主要内容,如果未能解决你的问题,请参考以下文章

在执行读取/更新的 MS SQL 存储过程上获取死锁(放置代码来处理死锁)

PHP:PHP读取MS Sql Server 2014数据库数据

如何使用 SQL 在 MS Access 数据库中“显示表”?

js大量数据计算导致页面假死

PCB MS SQL 标量函数(CLR) 实现转Json方法

MS SQL Server 查询后返回 JSON