美文网首页
MsSql解析JSON为表结构体

MsSql解析JSON为表结构体

作者: forstar | 来源:发表于2017-04-01 09:40 被阅读0次

--=============  存储过程语句  =============--

/*

解析一层jaon数组,转为表形式输出

*/

ALTER PROCEDURE [dbo].[sp_getJSONFields]

@Json VARCHAR(MAX)

AS

BEGIN

SELECT @Json=REPLACE(@Json,'[','')

SELECT @Json=REPLACE(@Json,']','')

SET @Json = @Json+ ','

SELECT @Json=REPLACE(@Json,'{','')

SELECT @Json=REPLACE(@Json,'},',',;')

DECLARE @temp VARCHAR(1000)

DECLARE @temp_str VARCHAR(1000)

DECLARE @objName VARCHAR(300)

DECLARE @objValue VARCHAR(300)

DECLARE @fieldSql VARCHAR(MAX)

DECLARE @temp_ziduan VARCHAR(1000)

SET @fieldSql = ''

--大循环,循环对象数据中的对象

WHILE LEN(@Json)>0

BEGIN

SET @fieldSql = @fieldSql+ ' select '

--获取前面的一个对象

SELECT @temp=SUBSTRING(@Json,0,CHARINDEX(';',@Json,0))

SET @temp_str=@temp

--循环获取前面对象的字段

WHILE LEN(@temp)>0

BEGIN

SELECT @temp_ziduan = SUBSTRING(@temp,0,CHARINDEX(',',@temp,0))

SELECT @temp=RIGHT(@temp,LEN(@temp)-LEN(@temp_ziduan)-1)

SET @objName =left(@temp_ziduan,CHARINDEX(':',@temp_ziduan,0)-1)

SET @objValue =right(@temp_ziduan,len(@temp_ziduan)-CHARINDEX(':',@temp_ziduan,0))

SET @fieldSql=@fieldSql+REPLACE(@objValue,'"','''')+' as '+REPLACE(@objName,'"','')+','

END

SET @fieldSql = LEFT(@fieldSql,LEN(@fieldSql)-1)+' union all '

SELECT @Json=RIGHT(@Json,LEN(@Json)-LEN(@temp_str)-1)

END

SET @fieldSql=LEFT(@fieldSql,LEN(@fieldSql)-10)

EXEC (@fieldSql)

END

--=============  调用测试  =============--

传入JsonArr:

传入JsonObject:


相关文章

  • MsSql解析JSON为表结构体

    --============= 存储过程语句 =============-- /* 解析一层jaon数组,转为表形...

  • go day09 json

    通过结构体生成json struct_tag的使用 通过map生成json json解析到结构体 json解析到map

  • 第05天(异常、文本文件处理)_03

    11_通过结构体生成json.go 12_通过map生成json.go 13_json解析到结构体.go 14_j...

  • golang之Json

    1. json字符串解析: json.Unmarshal(b, &f) json字符串解析到结构体中: 输出结果...

  • golang生成JSON及解析JSON

    一、JSON解析到结构体 在介绍这部分之前先简要介绍一下Json语法 JSON 语法是 JavaScript 语法...

  • golang生成JSON及解析JSON

    一、JSON解析到结构体 在介绍这部分之前先简要介绍一下Json语法 JSON 语法是 JavaScript 语法...

  • iOS 结构体json解析

    1 直接上代码 2 使用

  • Golang json 解析

    需要解析json格式如下: 说一说三种解析方式,1.利用结构体struct解析;2.利用interface空接口解...

  • Golang JSON的序列化和反序列化

    go提供了一个包encode/json,方便我们操作json。 结构体转json json转结构体

  • HMSET

    HMSET 使用结构体,为hash表添加字段。并利用结构体,将hash表的字段的值取出并赋值到结构体 使用普通命令...

网友评论

      本文标题:MsSql解析JSON为表结构体

      本文链接:https://www.haomeiwen.com/subject/ditiottx.html