[SQL SERVER]SQL2016-JSON(1)

SQL2016開始支援JSON,你可以輕鬆把資料轉換為JSON格式,也可把資料匯出JSON格式。

早期SQL沒支援JSON我的方法是使用Json.NET

但你可能不知道有多少人希望SQL SERVER支援JSON(Connect 超過1000票),

面對REST API當道潮流,該需求終於在SQL2016實現,並使用早期類似XML方法來處理,

這篇先來看看如何建立JSON物件。

 

目前有兩種模式,分別為AUTO and PATH。

FOR JSON AUTO:自動參考所使用的TSQL建立JSON物件,和FOR XML AUTO很類似。

select top 5 OrderID,CustomerID,ExpectedDeliveryDate,DeliveryInstructions,PickingCompletedWhen
from Sales.Orders
for json auto

你覺得結果格式不是很清楚明瞭,我大都使用JSON Viewer來檢視結果,如下圖

FOR JSON PATH:自行定義JSON結構或複雜巢狀結構,一律透過 dot (.)進行處理,和FOR XML PATH很類似。

建立Orders 的JSON物件

select top 5 OrderID
,CustomerID as 'Orders.CustomerID'
,ExpectedDeliveryDate as 'Orders.ExpectedDeliveryDate'
,DeliveryInstructions as 'Orders.DeliveryInstructions'
,PickingCompletedWhen as 'Orders.PickingCompletedWhen'
from Sales.Orders
for json path

建立複雜JSON物件:Root Name=Orders,Order和item屬性

select top 5 OrderID
,CustomerID as 'Order.CustomerID'
,ExpectedDeliveryDate as 'Order.ExpectedDeliveryDate'
,DeliveryInstructions as 'Order.DeliveryInstructions'
,PickingCompletedWhen as 'item.PickingCompletedWhen'
,Comments as 'item.Comments'
from Sales.Orders
for json path,root('Orders')

Enjoy SQL Server 2016

參考

Format Query Results as JSON with FOR JSON (SQL Server)