在SQL 2014中解析JSON的简单方法

时间:2019-03-31 12:37:08

标签: json sql-server parsing sql-server-2014

我正在寻找SQL 2014(或更低版本)中没有外部功能(如parseJSON)来将JSON值提取到字符串变量中的简单方法。

这是JSON:

declare @json nvarchar(1000) = '{"status":"ok","errmsg":0,"ordnumber":["123456","456789"]}'

我想将这些值转换为3个字符串变量:

declare @status varchar(50), @errmsg varchar(50), @ordnumber varchar(1000)

@status    => 'ok'
@errmsg    => '0'
@ordnumber => '123456,456789'

1 个答案:

答案 0 :(得分:0)

好吧,我想这是在没有外部功能的情况下解析SQL 2014中已知JSON的最简单方法...

select @status = REPLACE(SUBSTRING(@json,charindex('status',@json)+8,(charindex('errlog',@json)-2)-(charindex('status',@json)+8)),'"','')
select @errlog = REPLACE(SUBSTRING(@json,charindex('errlog',@json)+8,(charindex('pl_number',@json)-2)-(charindex('errlog',@json)+8)),'"','')
select @parcelnum = REPLACE(SUBSTRING(@json,charindex('pl_number',@json)+12,charindex(']}',@json)-(charindex('pl_number',@json)+12)),'"','')