Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre: SQL Server 2016 (13.x) és későbbi verziók
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (csak szerver nélküli SQL pool)
SQL analytics endpoint a Microsoft Fabricban
Tárház a Microsoft Fabricban
Adatbázis a Microsoft Fabricban
A FOR JSON záradék kimenetének teljes vezérléséhez adja meg a PATH beállítást.
PATH mód lehetővé teszi burkolóobjektumok létrehozását és összetett tulajdonságok beágyazását. Az eredmények JSON-objektumok tömbjeként vannak formázva.
A másik lehetőség az AUTO lehetőség használata a kimenet automatikus formázására a SELECT utasítás struktúrája alapján.
- A
AUTObeállítással kapcsolatos további információkért lásd: A JSON-kimenet automatikus formázása automatikus módban. - A két lehetőség áttekintéséhez lásd a . Lekérdezési eredmények JSON-ként való formázása a FOR JSON használatával.
Íme néhány példa a FOR JSON záradékra a PATH lehetőséggel. Formázza a beágyazott eredményeket pontokkal tagolt oszlopnevek vagy beágyazott lekérdezések használatával, ahogyan az alábbi példákban is látható. Alapértelmezés szerint a null értékek nem szerepelnek FOR JSON kimenetben.
Az Azure Data Studio a JSON-lekérdezések ajánlott lekérdezésszerkesztője, mivel automatikusan formázza a JSON-eredményeket (ahogyan az ebben a cikkben látható), ahelyett, hogy egy sima sztringet jelenítenének meg.
Példa – Ponttól elválasztott oszlopnevek
Az alábbi lekérdezés az AdventureWorks Person tábla első öt sorát formázta JSON-ként.
A FOR JSON PATH záradék az oszlop aliasát vagy oszlopnevét használja a JSON-kimenet kulcsnevének meghatározásához. Ha egy alias pontokat tartalmaz, a PATH beállítás beágyazott objektumokat hoz létre.
Query
SELECT TOP 5
BusinessEntityID As Id,
FirstName, LastName,
Title As 'Info.Title',
MiddleName As 'Info.MiddleName'
FROM Person.Person
FOR JSON PATH
Result
[{
"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"
}
}]
Példa – Több tábla
Ha egy lekérdezésben egynél több táblára hivatkozik, FOR JSON PATH az egyes oszlopokat az aliasával fészkeli be. Az alábbi lekérdezés egy JSON-objektumot hoz létre a lekérdezéshez csatlakoztatott (OrderHeader, OrderDetails) páronként.
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
Result
[{
"Order": {
"Number": "SO43659",
"Date": "2011-05-31T00:00:00"
},
"Product": {
"Price": 2024.9940,
"Quantity": 1
}
}, {
"Order": {
"Number": "SO43659"
},
"Product": {
"Price": 2024.9940
}
}]
További információ a JSON-ról az SQL Database Engine-ben
A beépített JSON-támogatás vizuális bemutatásához tekintse meg az alábbi videókat: