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í na: SQL Server 2016 (13.x) a nowše verzie
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL database in Microsoft Fabric
Použijte OPENJSON s výchozím schématem k vrácení tabulky s jedním řádkem pro každou vlastnost objektu nebo každý prvek pole.
Zde je několik příkladů, které používají OPENJSON s výchozím schématem. Další informace a další příklady najdete v tématu OPENJSON (Transact-SQL).
Příklad – vrácení každé vlastnosti objektu
Query
SELECT *
FROM OPENJSON('{"name":"John","surname":"Doe","age":45}')
Results
| Key | Value |
|---|---|
| name | John |
| surname | Doe |
| age | 45 |
Příklad – vrácení každého prvku pole
Query
SELECT [key],value
FROM OPENJSON('["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]')
Results
| Key | Value |
|---|---|
| 0 | en-GB |
| 1 | en-UK |
| 2 | de-AT |
| 3 | es-AR |
| 4 | sr-Cyrl |
Příklad – Převod JSON na dočasnou tabulku
Následující dotaz vrátí všechny vlastnosti informace objektu.
DECLARE @json NVARCHAR(MAX)
SET @json=N'{
"info":{
"type":1,
"address":{
"town":"Bristol",
"county":"Avon",
"country":"Great Britain"
},
"tags":["Sport", "Water polo"]
},
"type":"Basic"
}'
SELECT *
FROM OPENJSON(@json,N'lax $.info')
Results
| Key | Value | Typ |
|---|---|---|
| typ | 1 | 0 |
| address | { "town":"Bristol", "county":"Avon", "country":"Velká Británie" } | 5 |
| tags | [ "Sport", "Vodní polo" ] | 4 |
Příklad – Kombinování relačních dat a dat JSON
V následujícím příkladu má tabulka SalesOrderHeader textový sloupec SalesReason, který obsahuje pole SalesOrderReasons ve formátu JSON. Objekty SalesOrderReasons obsahují vlastnosti, jako jsou Manufacturer (Výrobce) a Quality (Kvalita). Příklad vytvoří sestavu, která spojí každý řádek prodejní objednávky se souvisejícími prodejními důvody tak, že rozšíří JSON pole důvodů prodeje, jako by důvody byly uloženy v samostatné podřízené tabulce.
SELECT SalesOrderID,OrderDate,value AS Reason
FROM Sales.SalesOrderHeader
CROSS APPLY OPENJSON(SalesReasons)
V tomto příkladu vrátí funkce OPENJSON tabulku důvodů prodeje, ve které se důvody zobrazují jako sloupec hodnoty. Operátor CROSS APPLY spojí každý řádek prodejní objednávky s řádky vrácenými tabulkově hodnotovou funkcí OPENJSON.
Další informace o formátu JSON v databázovém stroji SQL
Microsoft videa
Vizuální úvod k integrované podpoře JSON najdete v následujících videích: