转换嵌套JSON数据为TABLE
程序员文章站
2022-07-09 21:33:32
先准备一些数据: 创建一张临时表来存储: DECLARE @json_table AS TABLE ( [type] NVARCHAR(MAX), [desc] NVARCHAR(MAX) ) 获取第一层数据: INSERT INTO @json_table ([type],[desc]) SELE ......
先准备一些数据:
创建一张临时表来存储:
declare @json_table as table ( [type] nvarchar(max), [desc] nvarchar(max) )
获取第一层数据:
insert into @json_table ([type],[desc]) select [type],[desc] from openjson (@json_text,'$.db') with ( [type] nvarchar(max) '$.type', [desc] nvarchar(max) '$.desc' ) where [type] is not null;
获取第二层db_clr节点的数据:
insert into @json_table ([type],[desc]) select [type],[desc] from openjson (@json_text,'$.db') with ( db_clr nvarchar(max) as json ) cross apply openjson (db_clr) with ( [type] nvarchar(max) '$.type', [desc] nvarchar(max) '$.desc' );
同样方法,获取第二层的db_table节点数据:
insert into @json_table ([type],[desc]) select [type],[desc] from openjson (@json_text,'$.db') with ( db_table nvarchar(max) as json ) cross apply openjson (db_table) with ( [type] nvarchar(max) '$.type', [desc] nvarchar(max) '$.desc' ) ;
最后查询临时表存储表的数据:
但是,如果我们想加上节点root名称,用来真正区别记录的类别:
把临时表添加一个字段[root]:
declare @json_table as table ( [root] nvarchar(max), [type] nvarchar(max), [desc] nvarchar(max) );
以上三个节点获取的源代码:
insert into @json_table ([root],[type],[desc]) select [key],b.[type],[desc] from openjson (@json_text) a cross apply openjson (@json_text,'$.db') with ( [type] nvarchar(max) '$.type', [desc] nvarchar(max) '$.desc' )b where b.[type] is not null; insert into @json_table ([root],[type],[desc]) select 'db_clr', [type],[desc] from openjson (@json_text,'$.db') with ( db_clr nvarchar(max) as json ) cross apply openjson (db_clr) with ( [type] nvarchar(max) '$.type', [desc] nvarchar(max) '$.desc' ); insert into @json_table ([root],[type],[desc]) select 'db_table', [type],[desc] from openjson (@json_text,'$.db') with ( db_table nvarchar(max) as json ) cross apply openjson (db_table) with ( [type] nvarchar(max) '$.type', [desc] nvarchar(max) '$.desc' ) ;
最后是查询结果:
上一篇: cnblogs停止更新,同步到个人博客!
推荐阅读
-
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
-
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
-
C#实现集合转换成json格式数据的方法
-
Jquery如何序列化form表单数据为JSON对象
-
如何将ajax请求返回的Json格式数据循环输出成table形式
-
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
-
获取window.location.href中传的值,并且转换成json数据使用
-
获取表格数据转换为JSON字符串
-
php实现数组中索引关联数据转换成json对象的方法
-
php array 转json及java 转换 json数据格式操作示例