sql 将结果集系列化为json
来源:互联网 发布:燕十八php高性能 编辑:程序博客网 时间:2024/05/17 18:24
存储过程如下:SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE[dbo].[SerializeJSON](@ParameterSQL AS VARCHAR(MAX))ASBEGIN 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)) DECLARE @JSON VARCHAR(MAX)DECLARE @Row VARCHAR(MAX)DECLARE @RowStart INTDECLARE @RowEnd INTDECLARE @FieldStart INTDECLARE @FieldEnd INTDECLARE @KEY VARCHAR(MAX)DECLARE @Value VARCHAR(MAX) DECLARE @StartRoot VARCHAR(100);SET @StartRoot='<row>'DECLARE @EndRoot VARCHAR(100);SET @EndRoot='</row>'DECLARE @StartField VARCHAR(100);SET @StartField='<'DECLARE @EndField VARCHAR(100);SET @EndField='>' SET @RowStart=CharIndex(@StartRoot,@XMLString,0)SET @JSON=''WHILE @RowStart>0BEGIN 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) 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+'",' SET @FieldStart=@FieldStart+Len(@StartField) SET @FieldEnd=CharIndex(@EndField,@Row,@FieldStart) SET @FieldStart=CharIndex(@StartField,@Row,@FieldEnd) END IF LEN(@JSON)>0SET @JSON=SubString(@JSON,0,LEN(@JSON)) SET @JSON=@JSON+'},' --/ for each row SET @RowStart=CharIndex(@StartRoot,@XMLString,@RowEnd)ENDIF LEN(@JSON)>0SET @JSON=SubString(@JSON,0,LEN(@JSON))SET @JSON='['+@JSON+']'SELECT @JSON ENDGO
<pre name="code" class="csharp">调用存储过程方式:EXEC[SerializeJSON]'SELECT*FROM[Employee_TBL]'
0 0
- sql 将结果集系列化为json
- sql 将结果集反系列化为json
- 将json文件格式化为protobuf
- 将DataTable序列化为Json格式
- 将json字符串反序列化为DataTable
- Jquery 将表单序列化为Json对象
- Jquery 将表单序列化为Json对象
- Jquery 将表单序列化为Json对象
- Jquery 将表单序列化为Json对象
- Jquery 将表单序列化为Json对象
- 将表单序列化为json字符串
- 将表单序列化为json对象
- 将表单序列化为json对象
- Jquery 将表单序列化为Json对象
- 将表单你序列化为json对象
- 根据SQL语句查询出的结果集,将其封装为json
- 将Dictionary序列化为json数据 、json数据反序列化为Dictionary
- 将Dictionary序列化为json数据 、json数据反序列化为Dictionary
- C_C++指针指针应用详解
- 【结构体排序】HDU1009FatMouse' Trade
- 24.C语言函数传参详解
- 第一天开博客
- HDU 5137 数据结构之最短路
- sql 将结果集系列化为json
- java项目获取文件路径总结
- android 基本I/O操作
- JAVA学习中,一个关于Object对象转换时对应方法的问题
- The operation couldn’t be completed
- IT_linux_shell_系统脚本--"/etc/profile"
- Poj 3262 Protecting the Flowers【贪心】
- 11、Java String类型与Date日期类型互相转换
- wsimport wsdl提示[ERROR] "不支持使用 SOAP 编码