Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2016 (13.x) a novější verze
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (pouze bezserverový fond SQL)
Koncový bod analýzy SQL ve službě Microsoft Fabric
Sklad v Microsoft Fabric
SQL databáze v Microsoft Fabric
Pokud chcete zachovat úplnou kontrolu nad výstupem FOR JSON klauzule, zadejte PATH možnost.
režim PATH umožňuje vytvářet objekty obálky a vnořit složité vlastnosti. Výsledky jsou formátovány jako pole objektů JSON.
Alternativou je použití AUTO možnosti automatického formátování výstupu SELECT na základě struktury příkazu.
- Další informace o
AUTOtéto možnosti naleznete v tématu Automatické formátování výstupu JSON s automatickým režimem . - Přehled obou možností najdete v části Formátování výsledků dotazu jako JSON pomocí FOR JSON.
Tady je několik příkladů FOR JSON klauzule s PATH možností. Naformátujte vnořené výsledky pomocí názvů sloupců oddělených tečkami nebo pomocí vnořených dotazů, jak je znázorněno v následujících příkladech. Ve výstupu FOR JSON nejsou ve výchozím nastavení zahrnuty hodnoty null.
Azure Data Studio je doporučeným editorem dotazů pro dotazy JSON, protože automaticky formátuje výsledky JSON (jak je vidět v tomto článku) místo zobrazení plochého řetězce.
Příklad – názvy sloupců oddělených tečkami
Následující dotaz naformátuje prvních pět řádků z tabulky AdventureWorks Person jako JSON.
Klauzule FOR JSON PATH používá alias sloupce nebo název sloupce k určení názvu klíče ve výstupu JSON. Pokud alias obsahuje tečky, PATH možnost vytvoří vnořené objekty.
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říklad – více tabulek
Pokud v dotazu odkazujete na více než jednu tabulku, FOR JSON PATH vnořuje každý sloupec pomocí jeho aliasu. Následující dotaz vytvoří jeden objekt JSON na každý pár (OrderHeader, OrderDetails) sloučený v dotazu.
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
}
}]
Další informace o formátu JSON v databázovém stroji SQL
Vizuální úvod k integrované podpoře JSON najdete v následujících videích: