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ı
Yan tümcesinin FOR JSON çıkışı üzerinde tam denetim sağlamak için PATH seçeneğini belirtin.
PATH modu, sarmalayıcı nesneleri oluşturmanızı ve karmaşık özellikleri iç içe yerleştirmenizi sağlar. Sonuçlar bir JSON nesneleri dizisi olarak biçimlendirilir.
Alternatif olarak, çıkışı AUTO deyiminin yapısına göre otomatik biçimlendirme seçeneğini SELECT kullanmaktır.
- Seçeneği hakkında daha fazla bilgi için bkz. JSON çıkışını
AUTOAUTO moduyla otomatik olarak biçimlendirme. - Her iki seçeneğe genel bakış için bkz. FOR JSON ile sorgu sonuçlarını JSON olarak biçimlendirme.
Aşağıdaki örneklerde FOR JSON yan tümcesi PATH seçeneğiyle nasıl kullanılır gösterilmektedir. Noktayla ayrılmış sütun adlarını veya örneklerde gösterildiği gibi iç içe sorguları kullanarak iç içe yerleştirilmiş sonuçları biçimlendirin. Varsayılan olarak, null değerler çıkışa FOR JSON dahil değildir.
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.
Örnekler
Bu makaledeki kod örnekleri, AdventureWorks2025 giriş sayfasından indirebileceğiniz AdventureWorksDW2025 veya örnek veritabanını kullanır.
A. Nokta ile ayrılmış sütun adları
Aşağıdaki sorgu AdventureWorks Person tablosundaki ilk beş satırı JSON olarak biçimlendirir.
FOR JSON PATH ifadesi, JSON çıktısındaki anahtar adını belirlemek için sütun takma adını veya sütun adını kullanır. Alias noktalar içeriyorsa, PATH seçeneği iç içe nesneler oluşturur.
SELECT TOP 5 BusinessEntityID AS Id,
FirstName,
LastName,
Title AS 'Info.Title',
MiddleName AS 'Info.MiddleName'
FROM Person.Person
FOR JSON PATH;
Sonuç kümesi aşağıdadır.
[{
"Id": 1,
"FirstName": "Ken",
"LastName": "Sanchez",
"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.",
"MiddleName": "A"
}
}]
B. Birden çok tablo
Sorguda birden fazla tabloya başvurursanız, FOR JSON PATH diğer adını kullanarak her sütunu iç içe yuvarlar. Aşağıdaki sorgu, sorgunun katıldığı her (OrderHeader, OrderDetails) çift için bir JSON nesnesi oluşturur.
SELECT TOP 2 H.SalesOrderNumber AS 'Order.Number',
H.OrderDate AS 'Order.Date',
D.UnitPrice AS 'Product.Price',
D.OrderQty AS 'Product.Quantity'
FROM Sales.SalesOrderHeader AS H
INNER JOIN Sales.SalesOrderDetail AS D
ON H.SalesOrderID = D.SalesOrderID
FOR JSON PATH;
Sonuç kümesi aşağıdadır.
[{
"Order": {
"Number": "SO43659",
"Date": "2011-05-31T00:00:00"
},
"Product": {
"Price": 2024.9940,
"Quantity": 1
}
}, {
"Order": {
"Number": "SO43659"
},
"Product": {
"Price": 2024.9940
}
}]
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.