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
Gebruik OPENJSON
met een expliciet schema om een tabel te retourneren die is opgemaakt zoals u opgeeft in de WITH-component.
Hier volgen enkele voorbeelden die gebruikmaken van OPENJSON
met een expliciet schema. Zie OPENJSON (Transact-SQL)voor meer informatie en meer voorbeelden.
Voorbeeld: gebruik de WITH clause om de uitvoer op te maken
De volgende query retourneert de resultaten die worden weergegeven in de volgende tabel. U ziet hoe de AS JSON
-component ervoor zorgt dat waarden worden geretourneerd als JSON-objecten in plaats van scalaire waarden in col5
en array_element
.
DECLARE @json NVARCHAR(MAX) =
N'{"someObject":
{"someArray":
[
{"k1": 11, "k2": null, "k3": "text"},
{"k1": 21, "k2": "text2", "k4": { "data": "text4" }},
{"k1": 31, "k2": 32},
{"k1": 41, "k2": null, "k4": { "data": false }}
]
}
}'
SELECT * FROM
OPENJSON(@json, N'lax $.someObject.someArray')
WITH ( k1 int,
k2 varchar(100),
col3 varchar(6) N'$.k3',
col4 varchar(10) N'lax $.k4.data',
col5 nvarchar(MAX) N'lax $.k4' AS JSON,
array_element nvarchar(MAX) N'$' AS JSON
)
Resultaten
k1 | k2 | col3 | col4 | col5 | array-element |
---|---|---|---|---|---|
11 | NULL | "tekst" | NULL | NULL | {"k1": 11, "k2": null, "k3": "text"} |
21 | "tekst2" | NULL | "tekst4" | { "data": "text4" } | {"k1": true, "k2": "text2", "k4": { "data": "text4" } } |
31 | "32" | NULL | NULL | NULL | {"k1": 31, "k2": 32 } |
41 | NULL | NULL | vals | { "data": false } | {"k1": 41, "k2": null, "k4": { "data": false } } |
Voorbeeld: JSON laden in een SQL Server-tabel.
In het volgende voorbeeld wordt een heel JSON-object in een SQL Server-tabel geladen.
DECLARE @json NVARCHAR(MAX) = '{
"id" : 2,
"firstName": "John",
"lastName": "Smith",
"isAlive": true,
"age": 25,
"dateOfBirth": "2015-03-25T12:00:00",
"spouse": null
}';
INSERT INTO Person
SELECT *
FROM OPENJSON(@json)
WITH (id int,
firstName nvarchar(50), lastName nvarchar(50),
isAlive bit, age int,
dateOfBirth datetime2, spouse nvarchar(50))
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: