返回顶部
首页 > 资讯 > 数据库 >SQLServer 解析JSON字符串
  • 829
分享到

SQLServer 解析JSON字符串

2024-04-02 19:04:59 829人浏览 独家记忆
摘要

--------------------------------------------------- -----       &nbs

---------------------------------------------------
-----           解析字符串函数                -----
---------------------------------------------------
CREATE FUNCTioN [dbo].[fn_split](@p_str VARCHAR(8000), @p_split VARCHAR(10))
RETURNS @tab TABLE(tid VARCHAR(2000))
AS
BEGIN
DECLARE @idx INT
DECLARE @len INT
SELECT @len = LEN(@p_split), @idx = CHARINDEX(@p_split, @p_str, 1)
WHILE(@idx >= 1)
BEGIN
INSERT INTO @tab SELECT LEFT(@p_str, @idx - 1)
SELECT @p_str = RIGHT(@p_str, LEN(@p_str) - @idx - @len + 1), @idx = CHARINDEX(@p_split, @p_str, 1)
END
if(@p_str <> '') INSERT INTO @tab SELECT @p_str
RETURN
END;
-------------------------------
--  解析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      
BEGIN
DECLARE @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, '}', '');
     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)
BEGIN
IF(@tmprow IS NOT NULL)
BEGIN
SET @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)
BEGIN
IF(@i = 0) 
BEGIN
SET @jsonkey = @tmpval
END
IF(@i = 1)
BEGIN
SET @jsonvalue = @tmpval
END
SET @i = @i + 1
FETCH NEXT FROM @str_cur into @tmpval-- 内层游标下移一行
END
CLOSE @str_cur-- 关闭内层游标
DEALLOCATE @str_cur -- 释放内层游标
IF(@jsonkey = @p_key)
BEGIN
SET @rtnVal = @jsonvalue
END
END
FETCH NEXT FROM @json_cur INTO @tmprow-- 内层游标结束后,外层游标下移一行
END
CLOSE @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')


您可能感兴趣的文档:

--结束END--

本文标题: SQLServer 解析JSON字符串

本文链接: https://lsjlt.com/news/40284.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SQLServer 解析JSON字符串
    --------------------------------------------------- -----       &nbs...
    99+
    2024-04-02
  • mysql 解析json字符串、数组字符串、json数组字符串
    背景: 笔者使用mysql 5.7进行了一次json字符串的解析,因为一直在搞大数据相关的数据库、olap等,太久没有用mysql5.x的版本,一些函数已经不知道支不支持,我的同事建议我使用like、rlike模糊匹配的方式,身为数据人我不...
    99+
    2023-08-17
    mysql json 数据库
  • oracle怎么解析json字符串
    本篇内容介绍了“oracle怎么解析json字符串”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!DECLA...
    99+
    2024-04-02
  • Scala如何解析Json字符串
    小编给大家分享一下Scala如何解析Json字符串,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Scala解析Json字符串的实...
    99+
    2024-04-02
  • jquery如何解析json字符串
    在jquery中解析json字符串的方法:1.新建html项目,引入jquery;2.定义json字符串;3.使用parseJSON、JSON.parse、eval函数解析json字符串;具体步骤如下:首先,在新建一个html项目,在项目中...
    99+
    2024-04-02
  • mysql如何解析json字符串
    mysql中解析json字符串的方法使用JSON_EXTRACT()函数解析json字符串 语法:JSON_EXTRACT(原字段,'$.json字段名')示例:SELECT JSON_EXTRACT( t.result,'$.ro...
    99+
    2024-04-02
  • fastjson怎么解析json字符串
    可以使用Fastjson提供的JSON.parseObject()方法来解析JSON字符串。该方法接受两个参数,第一个参数是要解析的...
    99+
    2023-09-22
    fastjson json
  • Linux下怎么解析JSON字符串
    这篇文章主要为大家展示了“Linux下怎么解析JSON字符串”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下怎么解析JSON字符串”这篇文章吧。1、JSON命令: $&nbs...
    99+
    2023-06-28
  • 怎么使用mysql5.6解析JSON字符串
    本篇内容主要讲解“怎么使用mysql5.6解析JSON字符串”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用mysql5.6解析JSON字符串”吧!mysql5.6 解析JSON字符串支持...
    99+
    2023-07-02
  • 使用Jackson-json解析一个嵌套的json字符串
    目录Jackson-json解析一个嵌套的json字符串关于这个jar包然后读入我的json字符串(str)把节点展开取到shops时就简单了,贴上代码java解析多层嵌套json字...
    99+
    2024-04-02
  • 解析 JSON:文件和字符串的读取
    各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题是《解析 JSON:文件和字符串的读取》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的...
    99+
    2024-04-04
  • java解析多层嵌套json字符串问题
    目录java分别解析下面两个json字符串嵌套(任意层)JSON解析转换为Map源代码java分别解析下面两个json字符串 package jansonDemo; import...
    99+
    2024-04-02
  • VBScript把json字符串解析成json对象的方法教程
    这篇文章主要介绍“VBScript把json字符串解析成json对象的方法教程”,在日常操作中,相信很多人在VBScript把json字符串解析成json对象的方法教程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-08
  • Go语言怎么利用Unmarshal解析json字符串
    这篇文章主要介绍“Go语言怎么利用Unmarshal解析json字符串”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Go语言怎么利用Unmarshal解析json字符串”文章能帮助大家解决问题。简单...
    99+
    2023-06-30
  • SQLServer 实现字符串Split
    # 字符串Split declare @sql1 varchar(1000) set @sql1 = ‘select field=‘‘‘ + replace(‘1,23,456,789‘,‘,‘,‘‘‘ unio...
    99+
    2019-12-24
    SQLServer 实现字符串Split 数据库入门 数据库基础教程
  • Go语言利用Unmarshal解析json字符串的实现
    简单的解析例子: 首先还是从官方文档中的例子: package main import (     "fmt"     "encoding/json" ) type Animal...
    99+
    2024-04-02
  • 使用json解析字符串要注意哪些事项
    在使用JSON解析字符串时,需要注意以下几个事项:1. 确保字符串是一个有效的JSON格式:JSON解析器只能处理符合JSON语法规...
    99+
    2023-09-12
    json
  • 五分钟学会如何用java解析json字符串!
    在工作中我们常常使用json来存储和传输结构化的数据,如用户信息、配置信息等。它通常以string的方式进行传输,因此如何将string解析并得到我们想要的信息是一项必备且常用的功能。 JSON(JavaScript Object Nota...
    99+
    2023-08-18
    java json
  • Mysql内储存JSON字符串实例分析
    本文小编为大家详细介绍“Mysql内储存JSON字符串实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mysql内储存JSON字符串实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言JSON 可以...
    99+
    2023-06-29
  • json字符串转为json数组 php
    在PHP开发中,我们经常需要处理JSON字符串,有时候需要将JSON字符串转为JSON数组。今天我们来学习如何在PHP中将JSON字符串转为JSON数组。使用json_decode()函数PHP提供了一个非常简单的函数——json_deco...
    99+
    2023-05-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作