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
Ha a kifejezés kimenetét FOR JSON automatikusan szeretné formázni a nyilatkozat struktúrája SELECT alapján, adja meg a AUTO beállítást.
A beállítás megadásakor AUTO a rendszer automatikusan meghatározza a JSON-kimenet formátumát a SELECT lista oszlopainak sorrendje és a forrástáblák alapján. Ezt a formátumot nem módosíthatja.
A másik lehetőség, hogy a PATH opciót használjuk a kimenet feletti vezérlés fenntartása érdekében.
- A beállítással kapcsolatos további információkért lásd:
PATHBeágyazott JSON-kimenet formázása PATH móddal. - 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.
A lehetőséget használó FOR JSON AUTO lekérdezésnek záradékkal FROM kell rendelkeznie.
Íme néhány példa a FOR JSON záradékra a AUTO lehetőséggel.
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.
Examples
1. példa
Query
Ha egy lekérdezés csak egy táblára hivatkozik, a FOR JSON AUTO záradék eredménye hasonló az eredményhez FOR JSON PATH. Ebben az esetben FOR JSON AUTO nem hoz létre beágyazott objektumokat. Az egyetlen különbség az, hogy FOR JSON AUTO pontokkal tagolt aliasokat ad ki (például Info.MiddleName a következő példában) pontokkal rendelkező kulcsként, nem beágyazott objektumként.
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"
}]
2. példa
Query
Táblák összekapcsolásakor az első tábla oszlopai a gyökérobjektum tulajdonságaiként jönnek létre. A második táblázat oszlopai beágyazott objektumok tulajdonságaiként jönnek létre. A beágyazott tömb neveként a második tábla táblanevét vagy aliasát (például az alábbi példában D) használja a rendszer.
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
}]
}]
3. példa
Query
A FOR JSON AUTO helyett a SELECT utasításba ágyazhat be egy FOR JSON PATH al-lekérdezést, ahogyan az az alábbi példában látható. Ez a példa ugyanazt az eredményt adja ki, mint az előző példában.
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
}]
}]
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: