我正在寻找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'
答案 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)),'"','')