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ı
Çıktıyı SELECT deyiminin yapısına göre otomatik olarak biçimlendirmek için FOR JSON cümlesini belirten 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.
PATH Çıkışı denetlemek istiyorsanız seçeneğini kullanın.
- Seçeneği hakkında
PATHdaha fazla bilgi için bkz. PATH moduyla iç içe JSON çıkışı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.
Uyarı
Visual Studio Code için MSSQL uzantısı, biçimlendirilmemiş bir dize görüntülemek yerine JSON sonuçlarını (bu makalede görüldüğü gibi) otomatik olarak biçimlendirebilir.
Examples
Bu makaledeki kod örnekleri, AdventureWorks2025 giriş sayfasından indirebileceğiniz AdventureWorksDW2025 veya örnek veritabanını kullanır.
A. Tek bir tablodan JSON biçimlendirme
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;
Sonuç kümesi aşağıdadır.
[{
"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"
}]
B. Birleştirilmiş tablolar için JSON biçimlendirme
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 AS H
INNER JOIN Sales.SalesOrderDetail AS D
ON H.SalesOrderID = D.SalesOrderID
FOR JSON AUTO;
Sonuç kümesi aşağıdadır.
[{
"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
}]
}]
C. FOR JSON PATH kullanarak AUTO çıkışını eşleştirin
FOR JSON AUTO kullanmak yerine, aşağıdaki örnekte gösterildiği gibi, deyiminde SELECT bir alt sorguyu FOR JSON PATH olarak 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;
Sonuç kümesi aşağıdadır.
[{
"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 bkz. NoSQL ile ilişkisel dünyalar arasında köprü olarak JSON.