SqlServer中怎么将查询结果转换为XML和JSON
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关SqlServer中怎么将查询结果转换为XML和JSON,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.查询结果转XML
千家信息网最后更新 2026年11月03日SqlServer中怎么将查询结果转换为XML和JSON
这篇文章将为大家详细讲解有关SqlServer中怎么将查询结果转换为XML和JSON,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
1.查询结果转XML
DECLARE @ParameterSQL NVARCHAR(MAX)='SELECT * FROM table';DECLARE @SQL NVARCHAR(MAX)DECLARE @XMLString VARCHAR(MAX)DECLARE @XML XMLDECLARE @Paramlist NVARCHAR(1000)SET @Paramlist = N'@XML XML OUTPUT'SET @SQL = 'WITH PrepareTable (XMLString)'SET @SQL = @SQL + 'AS( 'SET @SQL = @SQL + @ParameterSQL+ ' FOR XML RAW,TYPE,ELEMENTS'SET @SQL = @SQL + ')'SET @SQL = @SQL + 'SELECT @XML=[XMLString]FROM[PrepareTable]'EXEC sp_executesql @SQL, @Paramlist, @XML=@XML OUTPUTSET @XMLString=CAST(@XML AS VARCHAR(MAX))SELECT @XML;SELECT @XMLString;
其中@ParameterSQL为要查询的语句,@XMLXML格式数据,@XMLStringXML转成字符串
2.查询结果转JSON
查询结果转换成json需要经过两个步骤,首先将查询结果转成XML数据,然后通过XML数据转成json
XML转JSON的存储过程如下:
CREATE PROCEDURE [dbo].[SerializeJSON] ( @XML XML, @json_xml NVARCHAR(MAX) OUTPUT )ASBEGIN DECLARE @XMLString NVARCHAR(MAX); SET @XMLString = CAST(@XML AS NVARCHAR(MAX)); BEGIN TRY--//开始捕捉异常 DECLARE @JSON NVARCHAR(MAX); DECLARE @Row VARCHAR(MAX); DECLARE @RowStart INT; DECLARE @RowEnd INT; DECLARE @FieldStart INT; DECLARE @FieldEnd INT; DECLARE @KEY VARCHAR(MAX); DECLARE @Value VARCHAR(MAX); DECLARE @StartRoot VARCHAR(100); SET @StartRoot = ''; DECLARE @EndRoot VARCHAR(100); SET @EndRoot = '
'; DECLARE @StartField VARCHAR(100); SET @StartField = '<'; DECLARE @EndField VARCHAR(100); SET @EndField = '>'; SET @RowStart = CHARINDEX(@StartRoot, @XMLString, 0); SET @JSON = ''; WHILE @RowStart>0 BEGIN SET @RowStart = @RowStart + LEN(@StartRoot); SET @RowEnd = CHARINDEX(@EndRoot, @XMLString, @RowStart); SET @Row = SUBSTRING(@XMLString, @RowStart, @RowEnd - @RowStart); SET @JSON = @JSON + '{'; --//for each row SET @FieldStart = CHARINDEX(@StartField, @Row, 0); WHILE @FieldStart>0 BEGIN --//parse node key SET @FieldStart = @FieldStart + LEN(@StartField); SET @FieldEnd = CHARINDEX(@EndField, @Row, @FieldStart); DECLARE @end INT = CHARINDEX('/>', @Row, @FieldStart); IF @end<1 OR @end>@FieldEnd BEGIN SET @KEY = SUBSTRING(@Row, @FieldStart, @FieldEnd - @FieldStart); SET @JSON = @JSON + '"' + @KEY + '":'; --//parse node value SET @FieldStart = @FieldEnd + 1; SET @FieldEnd = CHARINDEX('', @Row, @FieldStart); SET @Value = SUBSTRING(@Row, @FieldStart, @FieldEnd - @FieldStart); SET @JSON = @JSON + '"' + @Value + '",'; END; SET @FieldStart = @FieldStart + LEN(@StartField); SET @FieldEnd = CHARINDEX(@EndField, @Row, @FieldStart); SET @FieldStart = CHARINDEX(@StartField, @Row, @FieldEnd); END; IF LEN(@JSON)>0 SET @JSON = SUBSTRING(@JSON, 0, LEN(@JSON)); SET @JSON = @JSON + '},'; --// for each row SET @RowStart = CHARINDEX(@StartRoot, @XMLString, @RowEnd); END; IF LEN(@JSON)>0 SET @JSON = SUBSTRING(@JSON, 0, LEN(@JSON)); --//SET @JSON = '[' + @JSON + ']'; SET @json_xml = @JSON; END TRY--//结束捕捉异常 BEGIN CATCH--//有异常被捕获 SET @json_xml = @XMLString; END CATCH;--//结束异常处理END;
关于SqlServer中怎么将查询结果转换为XML和JSON就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
查询
结果
数据
内容
文章
更多
知识
篇文章
不错
两个
字符
字符串
格式
步骤
语句
质量
过程
参考
处理
存储
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技行业发展
中国互联网科技股
互联网巨头科技公司
青岛互联网科技公司
丰台科技园 互联网公司
哈尔滨新华互联网科技
科技大学互联网专业好不好
厦门千工互联网科技有限公司
中国航天科技大学国际工业互联网
晓花互联网科技有限公司网址
宜昌元轩互联网科技有限公司
电子科技大学互联网创业大赛
天津腾达互联网科技有限公司
互联网金融科技名词解释
美国互联网科技实力
互联网科技资金流入
同城互联网络科技
美国五大互联网科技公司市值多少
深圳互联网科技园地址
恒生科技互联网指数十大成分股
互联网科技工作委员会
互联网科技深圳
互联网科技资迅
科技互联网技术
科技互联网公司logo
时间互联网络科技
四川狮子座互联网科技
美国互联网前沿科技
唐山双旺合互联网科技产业园
互联网科技创新创业项目