SQL SERVER 将XML变量转为JSON文本

作者:和尚洗头用飘柔 时间:2024-01-21 23:38:46 

废话不多说了,直接给大家贴代码了。


-- create function
create function [dbo].[fnXmlToJson] (@XmlData xml)
returns nvarchar(max)
as
begin
return
(select stuff(
(select
*
from
(select
',{'+
stuff(
(select
',"'+
coalesce(b.c.value('local-name(.)', 'NVARCHAR(MAX)'),'')+'":"'+ b.c.value('text()[]','NVARCHAR(MAX)') +'"'
from x.a.nodes('*') b(c) for xml path(''),type).value('(./text())[]','NVARCHAR(MAX)'),,,'')
+'}'
from @XmlData.nodes('/root/*') x(a)) JSON(theLine)
for xml path(''),type).value('.','NVARCHAR(MAX)' )
,,,''));
end;
go
-- test table and data
create table [dbo].[PivotExample]
(
[Country] [nvarchar]() null
,[Year] [smallint] not null
,[SalesAmount] [money] null
)
on
[PRIMARY];
insert into [dbo].[PivotExample]values('Australia', , .);
insert into [dbo].[PivotExample]values('Germany', , .);
insert into [dbo].[PivotExample]values('United States', , .);
insert into [dbo].[PivotExample]values('France', , .);
declare @xml xml;
set @xml=(select top * from [dbo].[PivotExample] for xml path, root);
select dbo.fnXmlToJson(@xml);
--return string
{"Country":"Australia","Year":"","SalesAmount":"."},
{"Country":"Germany","Year":"","SalesAmount":"."},
{"Country":"United States","Year":"","SalesAmount":"."},
{"Country":"France","Year":"2008","SalesAmount":"922179.0400"}
标签:sql,xml,json
0
投稿

猜你喜欢

  • 13个超级有用的 jQuery 内容滚动插件和教程

    2011-08-10 19:10:08
  • Python爬虫爬取商品失败处理方法

    2021-04-11 11:26:31
  • python 子类调用父类的构造函数实例

    2023-05-27 22:33:37
  • go语言使用第三方包 json化结构体操作示例

    2024-02-19 22:51:43
  • MySQL如何修改账号的IP限制条件详解

    2024-01-14 19:41:59
  • 基于Python实现简单学生管理系统

    2021-01-02 18:58:11
  • Python简单遍历字典及删除元素的方法

    2021-12-31 08:57:51
  • Python: glob匹配文件的操作

    2023-05-30 00:36:24
  • 30个提高Web程序执行效率的好经验分享

    2023-07-16 00:14:22
  • Golang底层原理解析String使用实例

    2024-02-19 17:16:26
  • Oracle时间日期操作方法小结

    2010-11-25 18:04:00
  • PHP易混淆知识整理笔记

    2023-06-10 04:34:22
  • MySQL修改配置,区分大小写

    2010-12-03 16:31:00
  • Golang中接收者方法语法糖的使用方法详解

    2024-05-21 10:26:49
  • Git Submodule管理项目子模块的使用

    2023-10-06 20:34:57
  • Python中使用tkFileDialog实现文件选择、保存和路径选择

    2022-02-17 09:35:32
  • Python取出字典中的值的实现

    2022-01-09 20:16:07
  • MySQL 序列 AUTO_INCREMENT详解及实例代码

    2024-01-20 17:04:37
  • vue解决跨域路由冲突问题思路解析

    2024-04-28 09:32:05
  • windows10系统中安装python3.x+scrapy教程

    2022-06-03 22:27:48
  • asp之家 网络编程 m.aspxhome.com