Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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: