將JSON自動轉化成SQL表資料

2021-09-13 18:48:08 字數 4583 閱讀 7788

將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...