Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server 2016 (13.x) und höhere Versionen
von Azure SQL-Datenbank
AzureSQL Managed Instance
Azure Synapse Analytics (nur serverlose SQL-Pool)
SQL-Analyseendpunkt in Microsoft FabricWarehouse in Microsoft Fabric
SQL-Datenbank in Microsoft Fabric
in Microsoft Fabric
Verwenden Sie OPENJSON mit einem expliziten Schema, um eine Tabelle zurückzugeben, die wie im WITH-Abschnitt angegeben formatiert ist.
Hier sind einige Beispiele, die OPENJSON mit einem expliziten Schema verwenden. Weitere Informationen finden Sie unter OPENJSON (Transact-SQL).
Beispiel: Verwenden Sie die WITH-Klausel, um die Ausgabe zu formatieren.
Die folgende Abfrage gibt die in der folgenden Tabelle angezeigten Ergebnisse zurück. Beachten Sie, wie die AS JSON Klausel bewirkt, dass Werte als JSON-Objekte anstelle von Skalarwerten in col5 und array_elementzurückgegeben werden.
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
)
Results
| k1 | k2 | col3 | col4 | col5 | array_element |
|---|---|---|---|---|---|
| 11 | NULL | "text" | NULL | NULL | {"k1": 11, "k2": null, "k3": "text"} |
| 21 | "text2" | NULL | "text4" | { "data": "text4" } | {"k1": true, "k2": "text2", "k4": { "data": "text4" } } |
| 31 | "32" | NULL | NULL | NULL | {"k1": 31, "k2": 32 } |
| 41 | NULL | NULL | false | { "data": false } | {"k1": 41, "k2": null, "k4": {"data": false } } |
Beispiel - JSON in eine SQL-Server-Tabelle laden.
Im folgenden Beispiel wird ein komplettes JSON-Objekt in eine SQL Server -Tabelle 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))
Weitere Informationen zu JSON im SQL-Datenbankmodul
Eine visuelle Einführung in die integrierte JSON-Unterstützung finden Sie in den folgenden Videos: