Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op: SQL Server 2016 (13.x) en latere versies
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (alleen serverloze SQL-pool)
SQL Analytics-eindpunt in Microsoft Fabric
Warehouse in Microsoft Fabric
Als u de volledige controle over de uitvoer van de FOR JSON
-component wilt behouden, geeft u de optie PATH
op.
PATH
modus stelt u in staat wrapperobjecten te maken en complexe eigenschappen te nesten. De resultaten worden opgemaakt als een matrix van JSON-objecten.
Het alternatief is om de AUTO
optie te gebruiken om de uitvoer automatisch op te maken op basis van de structuur van de SELECT
-instructie.
- Voor meer informatie over de optie
AUTO
, zie JSON-uitvoer automatisch opmaken met de AUTO-modus. - Zie Queryresultaten opmaken als JSON met FOR JSONvoor een overzicht van beide opties.
Hier volgen enkele voorbeelden van de FOR JSON
clausule met de optie PATH
. Formatteer geneste resultaten met gebruik van puntgescheiden kolomnamen of geneste queries, zoals geïllustreerd in de volgende voorbeelden. Null-waarden worden standaard niet opgenomen in FOR JSON
uitvoer.
Azure Data Studio- is de aanbevolen queryeditor voor JSON-query's omdat de JSON-resultaten automatisch worden opgemaakt (zoals in dit artikel wordt weergegeven) in plaats van een platte tekenreeks weer te geven.
Voorbeeld: door punt gescheiden kolomnamen
Met de volgende query worden de eerste vijf rijen uit de tabel AdventureWorks Person
opgemaakt als JSON.
De FOR JSON PATH
component maakt gebruik van de kolomalias of kolomnaam om de sleutelnaam in de JSON-uitvoer te bepalen. Als een alias puntjes bevat, worden met de optie PATH
geneste objecten gemaakt.
Query
SELECT TOP 5
BusinessEntityID As Id,
FirstName, LastName,
Title As 'Info.Title',
MiddleName As 'Info.MiddleName'
FROM Person.Person
FOR JSON PATH
resultaat
[{
"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"
}
}]
Voorbeeld: meerdere tabellen
Als u naar meer dan één tabel in een query verwijst, nestelt FOR JSON PATH
de kolommen met behulp van de bijbehorende alias. Met de volgende query wordt voor elk (OrderHeader, OrderDetails
)-paar dat in de query wordt samengevoegd één JSON-object gecreëerd.
Query
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 H
INNER JOIN Sales.SalesOrderDetail D
ON H.SalesOrderID = D.SalesOrderID
FOR JSON PATH
resultaat
[{
"Order": {
"Number": "SO43659",
"Date": "2011-05-31T00:00:00"
},
"Product": {
"Price": 2024.9940,
"Quantity": 1
}
}, {
"Order": {
"Number": "SO43659"
},
"Product": {
"Price": 2024.9940
}
}]
Meer informatie over JSON in de SQL Database Engine
Zie de volgende video's voor een visuele inleiding tot de ingebouwde JSON-ondersteuning in SQL Server en Azure SQL Database: