將數(shù)據(jù)庫SQL查詢結(jié)果直接轉(zhuǎn)為JSON_第1頁
將數(shù)據(jù)庫SQL查詢結(jié)果直接轉(zhuǎn)為JSON_第2頁
將數(shù)據(jù)庫SQL查詢結(jié)果直接轉(zhuǎn)為JSON_第3頁
將數(shù)據(jù)庫SQL查詢結(jié)果直接轉(zhuǎn)為JSON_第4頁
將數(shù)據(jù)庫SQL查詢結(jié)果直接轉(zhuǎn)為JSON_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

將數(shù)據(jù)庫SQL查詢結(jié)果直接轉(zhuǎn)為JSONJSON是一種輕量級的數(shù)據(jù)交換格式,采用完全獨(dú)立于編程語言的文本格式來存儲(chǔ)和表示數(shù)據(jù)。簡潔和清晰的層次結(jié)構(gòu)使得JSON成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。

SQLServer對從2016開始添加了對Json數(shù)據(jù)的支持,我們可以很輕松的將查詢的數(shù)據(jù)通過SQL語句直接轉(zhuǎn)成Json格式,這對我們存儲(chǔ)和交互數(shù)據(jù)提供了一個(gè)很好的途徑。今天我們就說說在SQLServer中如何將查詢結(jié)果生成Json文本。測試數(shù)據(jù)準(zhǔn)備為了測試效果,我們先準(zhǔn)備測試數(shù)據(jù),這里做一個(gè)簡單的銷售表:declare

@sale

table(

FName

nvarchar(50),

FDistrict

nvarchar(50),

FAmount

decimal(28,10)

);

insert

into

@sale

values

('張三','北京',20000),

('張三','上海',50000),

('張三','深圳',40000),

('張三','廣州',30000),

('李四','北京',30000),

('李四','上海',50000),

('李四','深圳',40000),

('李四','廣州',10000);

演示數(shù)據(jù)神奇的forjsonauto子句在查詢的from子句中加上forjsonauto,查詢結(jié)果就會(huì)自動(dòng)轉(zhuǎn)成json文本,這是最簡單的一種轉(zhuǎn)換方式。http://f-1.ccselect

*from

@sale

for

json

auto

查詢的結(jié)果就是json文本了。

查詢結(jié)果自動(dòng)轉(zhuǎn)成Json把Json抓取出來,效果如下:

自動(dòng)導(dǎo)出的Json文本是否感覺很神奇,如果您覺得SQLServer對導(dǎo)出Json的支持僅僅如此,那您就太小看微軟了,下面我們再說說更強(qiáng)大的導(dǎo)出功能。神奇的forjsonpath子句見識(shí)了神奇的forjsonauto子句,我們在看看另一個(gè)神奇的forjsonpath子句,該子句使用列別名或列名來確定JSON輸出中的鍵名稱。比如我們把“姓名”作為一個(gè)頂層節(jié)點(diǎn),把區(qū)域和銷售額設(shè)置一個(gè)上級節(jié)點(diǎn)“銷售情況”:select

FName

as

姓名,

FDistrict

as

'銷售情況.區(qū)域',

FAmount

as

'銷售情況.金額'

from

@sale

for

json

path

查詢的結(jié)果也是Json文本:

查詢結(jié)果自動(dòng)轉(zhuǎn)成Json把Json抓取出來,效果如下:

自動(dòng)導(dǎo)出的Json文本有沒有發(fā)現(xiàn)什么不同?“銷售情況.區(qū)域”、“銷售情況.金額”中的點(diǎn)號(hào),自動(dòng)將“銷售情況”作為了上級節(jié)點(diǎn),“區(qū)域”和“金額”作為了子節(jié)點(diǎn)。神奇的ROOT選項(xiàng)對Json比較熟悉的朋友會(huì)發(fā)現(xiàn),forjsonauto和forjsonpath導(dǎo)出的Json直接是數(shù)組,每條記錄就是一個(gè)數(shù)組元素,缺少了根節(jié)點(diǎn),如果我們想要給Json加一個(gè)根節(jié)點(diǎn)要怎么做呢?SQLServer提供了Root選項(xiàng)來完成根節(jié)點(diǎn)的添加工作:select

FName

as

姓名,

FDistrict

as

'銷售情況.區(qū)域',

FAmount

as

'銷售情況.金額'

from

@sale

for

json

path,

root('業(yè)務(wù)信息');

查詢

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論