----- 解析字串函式 -----
create function [dbo].[fn_split](@p_str varchar(8000), @p_split varchar(10))
returns @tab table(tid varchar(2000))
asbegin
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)
endif(@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, '"', '');
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
endif(@i = 1)
begin
set @jsonvalue = @tmpval
endset @i = @i + 1
fetch next from @str_cur into @tmpval-- 內層游標下移一行
endclose @str_cur-- 關閉內層游標
deallocate @str_cur -- 釋放內層游標
if(@jsonkey = @p_key)
begin
set @rtnval = @jsonvalue
endend
fetch next from @json_cur into @tmprow-- 內層游標結束後,外層游標下移一行
endclose @json_cur-- 關閉外層游標
deallocate @json_cur-- 釋放外層游標
end
return @rtnval
end使用例項
select dbo.fn_parsejson('','company')
JSON解析 XML解析
json解析 1大括號代表字典 2中括號 小括號 代表陣列 3冒號的左右兩邊分別為鍵和值 key value 4資料和資料之間 用逗號隔開 我們在本機上建立乙個file.xml,進行解析,並取出年齡35 json解析 本地讀取student.xm l檔案nsstring jstr nsstring ...
JSON解析 XML解析
主要是顯示地理位置和天氣以及溫度。對網路請求下來的json資料進行解析。import viewcontroller.h define kweatherurl inte ce viewcontroller property weak,nonatomic iboutlet uilabel citylab...
JSON庫解析json檔案
cocoa 下json開源的類庫有很多,其中jsonkit庫是非常簡單易用而且效率又比較高的。解析 舉例 import jsonkit.h 假設 strjson 是網路上接收到的 json 字串,nsstring strjson bage 3,sound def.nsdictionary resul...