SQLServer 解析JSON字符串

SQLServer 解析JSON字符串,第1张

概述--------------------------------------------------------           解析字符串函数                --------------------------------------------------------CREATE FUNCTION [dbo].[fn_split](@p_str VARCHAR(800
--------------------------------------------------------           解析字符串函数                --------------------------------------------------------CREATE FUNCTION [dbo].[fn_split](@p_str VARCHAR(8000), @p_split VARCHAR(10))RETURNS @tab table(tID VARCHAR(2000))ASBEGINDECLARE @IDx INTDECLARE @len INTSELECT @len = LEN(@p_split), @IDx = CHARINDEX(@p_split, @p_str, 1)WHILE(@IDx >= 1)BEGININSERT INTO @tab SELECT left(@p_str, @IDx - 1)SELECT @p_str = RIGHT(@p_str, LEN(@p_str) - @IDx - @len + 1), 1)ENDif(@p_str <> '') INSERT INTO @tab SELECT @p_strRETURNEND;
---------------------------------  解析JsON字符串  -----------------------------------p_Jsonstr Json字符串--p_key 键--返回p_key对应的值CREATE FUNCTION [dbo].[fn_parseJson](@p_Jsonstr VARCHAR(8000),                                 @p_key VARCHAR(200)) RETURNS VARCHAR(3000)AS      BEGINDECLARE @rtnVal VARCHAR(3000);  DECLARE @i INT;  DECLARE @Jsonkey VARCHAR(200);  DECLARE @Jsonvalue VARCHAR(1000);  DECLARE @Json VARCHAR(8000);  DECLARE @tmprow VARCHAR(2000);  DECLARE @tmpval VARCHAR(2000);    IF(@p_Jsonstr IS NOT NulL)BEGIN     SET @Json = REPLACE(@p_Jsonstr, '{', '');     SET @Json = REPLACE(@Json, '}', '"', '');DECLARE @Json_cur CURSOR;  -- 声明外层游标SET @Json_cur = CURSOR FOR SELECT tID FROM fn_split(@Json, ',');OPEN @Json_cur-- 打开游标(外层游标)FETCH NEXT FROM @Json_cur INTO @tmprow-- 提取外层游标行WHILE(@@FETCH_STATUS = 0)BEGINIF(@tmprow IS NOT NulL)BEGINSET @i = 0;SET @Jsonkey = '';SET @Jsonvalue = '';DECLARE @str_cur CURSOR;-- 声明内层游标SET @str_cur = CURSOR FOR SELECT tID FROM fn_split(@tmprow, ':');--第二次拆分后的游标(内层游标)OPEN @str_cur  -- 打开游标FETCH NEXT FROM @str_cur INTO @tmpval-- 提取内层游标行WHILE(@@FETCH_STATUS = 0)BEGINIF(@i = 0) BEGINSET @Jsonkey = @tmpvalENDIF(@i = 1)BEGINSET @Jsonvalue = @tmpvalENDSET @i = @i + 1FETCH NEXT FROM @str_cur into @tmpval-- 内层游标下移一行ENDCLOSE @str_cur-- 关闭内层游标DEALLOCATE @str_cur -- 释放内层游标IF(@Jsonkey = @p_key)BEGINSET @rtnVal = @JsonvalueENDENDFETCH NEXT FROM @Json_cur INTO @tmprow-- 内层游标结束后,外层游标下移一行ENDCLOSE @Json_cur-- 关闭外层游标DEALLOCATE @Json_cur-- 释放外层游标END     RETURN @rtnVal  END


使用示例:

Select dbo.fn_parseJson('{"billPrice":"1.67","buyDate":"2009-12-30","currentStatus":"有租约","decoration":"精装","empCode":"174999",","houseID":"F20BEBE259794C858C76122BCBACC71F","ID":"36398","isAccompany":"0","isCollect":"1","isOnlyOne":"1","isShotProperty":"1","noCollectReason":"","parking":"0","propertyNo":"5885109","recordDate":"2017-06-08","recordRemark":"啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊"}','buyDate')
总结

以上是内存溢出为你收集整理的SQLServer 解析JSON字符串全部内容,希望文章能够帮你解决SQLServer 解析JSON字符串所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1172715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存