Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (yalnızca sunucusuz SQL havuzu)
Microsoft Fabric'te SQL analitik uç noktası
Microsoft Fabric'te depo veritabanı
Microsoft Fabric'te SQL veritabanı
FOR JSON ifadesinin yapısına göre SELECT yan tümcesinin çıktısını otomatik biçimlendirmek için AUTO seçeneğini belirtin.
Seçeneği belirttiğinizde AUTO , JSON çıkışının biçimi SELECT listesindeki sütunların sırasına ve kaynak tablolarına göre otomatik olarak belirlenir. Bu biçimi değiştiremezsiniz.
Bunun alternatifi, çıkış üzerinde denetimi korumak için seçeneğini kullanmaktır PATH .
- Seçeneği hakkında
PATHdaha fazla bilgi için bkz. PATH Modu ile İç İçe JSON Çıktısını Biçimlendirme. - Her iki seçeneğe genel bakış için bkz. FOR JSON ile sorgu sonuçlarını JSON olarak biçimlendirme.
Bir sorguda FOR JSON AUTO seçeneği kullanılıyorsa, FROM içeren bir tümce olmalıdır.
Burada FOR JSON yan tümcesinin AUTO seçeneğiyle bazı örnekleri verilmiştir.
Azure Data Studio, JSON sonuçlarını düz bir dize görüntülemek yerine otomatik olarak biçimlendirdiğinden (bu makalede görüldüğü gibi) JSON sorguları için önerilen sorgu düzenleyicisidir.
Examples
Örnek 1
Query
Sorgu yalnızca bir tabloya başvurduğunda yan tümcesinin FOR JSON AUTO sonuçları sonuçlarına FOR JSON PATHbenzer. Bu durumda FOR JSON AUTO iç içe nesneler oluşturmaz. Tek fark, FOR JSON AUTO 'nin noktalarla ayrılmış takma adları (aşağıdaki örnekte Info.MiddleName gibi), iç içe nesneler şeklinde değil, noktalı anahtarlar şeklinde çıkış yapmasıdır.
SELECT TOP 5
BusinessEntityID As Id,
FirstName, LastName,
Title As 'Info.Title',
MiddleName As 'Info.MiddleName'
FROM Person.Person
FOR JSON AUTO
Result
[{
"Id": 1,
"FirstName": "Ken",
"LastName": "Sánchez",
"Info.MiddleName": "J"
}, {
"Id": 2,
"FirstName": "Terri",
"LastName": "Duffy",
"Info.MiddleName": "Lee"
}, {
"Id": 3,
"FirstName": "Roberto",
"LastName": "Tamburello"
}, {
"Id": 4,
"FirstName": "Rob",
"LastName": "Walters"
}, {
"Id": 5,
"FirstName": "Gail",
"LastName": "Erickson",
"Info.Title": "Ms.",
"Info.MiddleName": "A"
}]
Örnek 2
Query
Tabloları birleştirdiğinizde, ilk tablodaki sütunlar kök nesnenin özellikleri olarak oluşturulur. İkinci tablodaki sütunlar iç içe nesnenin özellikleri olarak oluşturulur. İkinci tablonun tablo adı veya diğer adı (örneğin, aşağıdaki örnekte D) iç içe dizi adı olarak kullanılır.
SELECT TOP 2 SalesOrderNumber,
OrderDate,
UnitPrice,
OrderQty
FROM Sales.SalesOrderHeader H
INNER JOIN Sales.SalesOrderDetail D
ON H.SalesOrderID = D.SalesOrderID
FOR JSON AUTO
Result
[{
"SalesOrderNumber": "SO43659",
"OrderDate": "2011-05-31T00:00:00",
"D": [{
"UnitPrice": 24.99,
"OrderQty": 1
}]
}, {
"SalesOrderNumber": "SO43659",
"D": [{
"UnitPrice": 34.40
}, {
"UnitPrice": 134.24,
"OrderQty": 5
}]
}]
Örnek 3
Query
FOR JSON AUTO kullanmak yerine, aşağıdaki örnekte gösterildiği gibi, SELECT deyiminde for JSON PATH alt sorgularını iç içe yerleştirebilirsiniz. Bu örnek, önceki örnekle aynı sonucu döndürür.
SELECT TOP 2
SalesOrderNumber,
OrderDate,
(SELECT UnitPrice, OrderQty
FROM Sales.SalesOrderDetail AS D
WHERE H.SalesOrderID = D.SalesOrderID
FOR JSON PATH) AS D
FROM Sales.SalesOrderHeader AS H
FOR JSON PATH
Result
[{
"SalesOrderNumber": "SO43659",
"OrderDate": "2011-05-31T00:00:00",
"D": [{
"UnitPrice": 24.99,
"OrderQty": 1
}]
}, {
"SalesOrderNumber": "SO4390",
"D": [{
"UnitPrice": 24.99
}]
}]
SQL Veritabanı Altyapısı'nda JSON hakkında daha fazla bilgi edinin
Yerleşik JSON desteğine görsel bir giriş için aşağıdaki videolara bakın: