解状态"置疑"析JSON字符串

   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -   ——女人,,,,,,,,,,,解析字符串函数,,,,,,,,,,,,,,,- - - - - -   ---------------------------------------------------   CREATE  FUNCTION  [dbo]。[fn_split] (@p_str  VARCHAR (8000), @p_split  VARCHAR (10))   RETURNS  @tab 表(tid  VARCHAR (2000))   作为   开始   DECLARE  @idx  INT   DECLARE  @len  INT   SELECT  @len =, LEN (@p_split), @idx =, CHARINDEX (@p_split, @p_str,, 1)   而(@idx 祝辞=,1)   开始   INSERT  INTO  @tab  SELECT 左(@p_str, @idx 作用;1)   SELECT  @p_str =,右(@p_str, LEN (@p_str),安康;@idx 作用;@len  +, 1),, @idx =, CHARINDEX (@p_split, @p_str,, 1)   结束   如果(@p_str  & lt;祝辞,”),INSERT  INTO  @tab  SELECT  @p_str   返回   结束; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -   ,,,解析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 ,,,,,   开始   DECLARE  @rtnVal  VARCHAR (3000);   DECLARE 才能@i 智力;   DECLARE 才能;@jsonkey  VARCHAR (200);   DECLARE 才能;@jsonvalue  VARCHAR (1000);   DECLARE 才能;@json  VARCHAR (8000);   DECLARE 才能;@tmprow  VARCHAR (2000);   DECLARE 才能;@tmpval  VARCHAR (2000);   ,,   如果才能(@p_jsonstr  IS  NOT 零)   开始   ,,,,SET  @json =,取代(@p_jsonstr,‘{’,”);   ,,,,SET  @json =,取代(@json,‘}’,”);   ,,,,SET  @json =,取代(@json,“,”);   DECLARE  @json_cur 游标;,,,,声明外层游标   SET  @json_cur =, CURSOR  FOR  SELECT  tid 得到fn_split (@json,,‘,’);   OPEN  @json_cur——,打开游标(外层游标)   FETCH  NEXT 得到@json_cur  INTO  @tmprow——,提取外层游标行   而(@@FETCH_STATUS =, 0)   开始   如果(@tmprow  IS  NOT 零)   开始   SET  @i =, 0;   SET  @jsonkey =,”;   SET  @jsonvalue =,”;   ——DECLARE  @str_cur 游标;声明内层游标   SET  @str_cur =, CURSOR  FOR  SELECT  tid 得到fn_split (@tmprow,“:”);——第二次拆分后的游标(内层游标)   OPEN  @str_cur ,,,打开游标   FETCH  NEXT 得到@str_cur  INTO  @tmpval——,提取内层游标行   而(@@FETCH_STATUS =, 0)   开始   如果(@i =, 0),   开始   SET  @jsonkey =@tmpval   结束   如果(@i =, 1)   开始   SET  @jsonvalue =@tmpval   结束   SET  @i =, @i  + 1   FETCH  NEXT 得到@str_cur  into  @tmpval——,内层游标下移一行   结束   CLOSE  @str_cur——,关闭内层游标   DEALLOCATE  @str_cur ——,释放内层游标   如果(@jsonkey =, @p_key)   开始   SET  @rtnVal =@jsonvalue   结束   结束   FETCH  NEXT 得到@json_cur  INTO  @tmprow——,内层游标结束后,外层游标下移一行   结束   CLOSE  @json_cur——,关闭外层游标   DEALLOCATE  @json_cur——,释放外层游标   最终获得;   ,,   @rtnVal  RETURN 才能;   结束


使用示例:

Select  dbo.fn_parsejson (   ”{billPrice”:“1.67”,“buyDate”:“2009-12-30”,“currentStatus”:“有租约”,   “装饰”:“精装”,“empCode”:“174999”,“,”houseId”:“F20BEBE259794C858C76122BCBACC71F”,   “id”:“36398”,“isAccompany”:“0”,“isCollect”:“1”,“isOnlyOne”:“1”,   “isShotProperty”:“1”,“noCollectReason”:“”,“停车”:“0”,“propertyNo”:“5885109”,   “recordDate”:“2017-06-08”,“recordRemark”:“啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊“}”   之前,buyDate)


解状态"置疑"析JSON字符串