將json自動轉化成sql表資料
使用者可以根據不同需求進行更改,資料來源只是最終查詢出來並沒有插入指定使用者表。
--按指定符號分割字串,返回分割後的元素個數
create function
get_strarraylength
( @str varchar
(5000),
--要分割的字串
@split varchar(10
)--分隔符號
)returns int
asbegin
declare @location int
declare @start int
declare @length int
set @str=
ltrim
(rtrim
(@str)
)set @location=
charindex
(@split,@str)
set @length=
1while @location<
>
0 begin
set @start=@location+
1set @location=
charindex
(@split,@str,@start)
set @length=@length+
1 end
return @length
end--
----
----
----
-------
--按指定符號分割字串,返回分割後指定索引的第幾個元素
create function
get_strarraystrofindex
( @str varchar
(5000),
--要分割的字串
@split varchar(10
),--分隔符號
@index int --取第幾個元素
)returns varchar
(5000)as
begin
declare @location int
declare @start int
declare @next int
declare @seed int
set @str=
ltrim
(rtrim
(@str)
)set @start=
1set @next=
1set @seed=
len(@split)
set @location=
charindex
(@split,@str)
while @location<
>
0 and @index>@next
begin
set @start=@location+@seed
set @location=
charindex
(@split,@str,@start)
set @next=@next+
1 end
if @location =
0 select @location =
len(@str)+1
return
substring
(@str,@start,@location-@start)
end
ifobject_id
('sp_getjsonfields')is
notnull
drop
procedure sp_getjsonfields
gocreate
procedure sp_getjsonfields
@json varchar
(max)as
begin
select @json=
replace
(@json,'',
',')
declare @temp varchar
(100
)declare @objname varchar(30
)declare @objvalue varchar(30
)declare @fieldsql varchar
(max
)set @fieldsql=
'select '
while
len(@json)
>
0begin
select @temp=
substring
(@json,0,
charindex
(','
,@json,0)
)--print @temp
select @json=
right
(@json,
len(@json)
-len
(@temp)-1
)--print @json
set @objname =
left
(@temp,
charindex
(':'
,@temp,0)
-1)set @objvalue =
right
(@temp,
len(@temp)
-charindex
(':'
,@temp,0)
)--print @objname+
'='+ @objvalue+
';'set @fieldsql=@fieldsql+
replace
(@objvalue,
'"',
'''')+
' as '
+replace
(@objname,
'"','')
+','
--print
'------------------'
endset @fieldsql=
left
(@fieldsql,
len(@fieldsql)-1
)--exec sp_executesql @fieldsql
exec
(@fieldsql)
endgo
drop
table #sql
create
table #sql
( id int
identity(1
,1)not
null
,txt
nvarchar
(max)
)declare @str varchar
(5000)--
-傳入你的json
set @str=
', '
print dbo.
get_strarraylength
(@str,
'},'
)declare @next int
declare @s varchar
(100
)set @next=
1while @next<=dbo.
get_strarraylength
(@str,
'},'
)begin
insert
into #sql values
(dbo.
get_strarraystrofindex
(@str,
'},'
,@next)
+'}'
)print dbo.
get_strarraystrofindex
(@str,
'},'
,@next)
+'}'
----輸出陣列中的值
set @next=@next+
1end
update #sql set
txt=
left
(txt
,len
(txt)-
1)where id=
(select
top1
max(id)
from #sql)
--查詢出資料
declare @json nvarchar
(max)
declare cursor_name cursor
for--定義游標
select
txtfrom #sql
open cursor_name --開啟游標
fetch
next
from cursor_name into @json
while @@fetch_status=0
begin
exec sp_getjsonfields @json
fetch
next
from cursor_name into @json
endclose cursor_name --關閉游標
deallocate cursor_name --釋放游標
原文:
原文:
將Datatable轉化成json傳送前台
1 將dt序列化成json,放到前台的隱藏控制項 hidboundary 中 string json jsonconvert.serializeobject dttemp this.hidboundary.value json 需要引用newtonsoft.json.dll 2 從前台隱藏空間中取得...
list轉化成json(有待改進)
1 將bean轉換成jsonobject jsonobject 2 將單個的jsonobject放到json陣列裡面 jsonarray 3 生成 最後的json資料 如下 public void joblist catch exception ex jsonarray jsonarray new ...
php陣列物件轉化成json格式
任務目標 將下列陣列物件,轉化成json格式 tdclass object id 9e929826 5c81 11e5 a788 00163e000c27 lawyername 郭俊亭 lawfirm 新疆德新律師事務所 region 喀什地區 licenseareas array 0 stdcla...