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
Azure SQL-Datenbank
Azure SQL Managed Instance
Azure Synapse Analytics (nur serverlosen SQL-Pool)
SQL-Analyseendpunkt in Microsoft Fabric
Warehouse in Microsoft Fabric
SQL-Datenbank in Microsoft Fabric
Um die Ausgabe der FOR JSON Klausel automatisch basierend auf der Struktur der SELECT Anweisung zu formatieren, geben Sie die AUTO Option an.
Wenn Sie die AUTO Option angeben, wird das Format der JSON-Ausgabe automatisch basierend auf der Reihenfolge der Spalten in der SELECT-Liste und deren Quelltabellen bestimmt. Dieses Format können Sie nicht ändern.
Die Alternative besteht darin, die PATH Option zu nutzen, um die Kontrolle über die Ausgabe zu behalten.
- Weitere Informationen zur
PATHOption finden Sie unter "Geschachtelte JSON-Ausgabe mit PATH-Modus formatieren". - Eine Übersicht über beide Optionen finden Sie unter Formatieren von Abfrageergebnissen als JSON mit FOR JSON-.
Eine Abfrage, die die FOR JSON AUTO Option verwendet, muss über eine FROM Klausel verfügen.
Hier sind einige Beispiele für die FOR JSON-Klausel mit der option AUTO.
Azure Data Studio ist der empfohlene Abfrage-Editor für JSON-Abfragen, da hierbei die JSON-Ergebnisse (wie in diesem Artikel gezeigt) automatisch formatiert werden, anstatt dass eine flache Zeichenfolge angezeigt wird.
Examples
Beispiel 1
Query
Wenn eine Abfrage nur auf eine Tabelle verweist, ähneln die Ergebnisse der FOR JSON AUTO Klausel den Ergebnissen von FOR JSON PATH. In diesem Fall erstellt FOR JSON AUTO keine geschachtelten Objekte. Der einzige Unterschied besteht darin, dass FOR JSON AUTO punktgetrennte Aliase (z. B. Info.MiddleName im folgenden Beispiel) als Schlüssel mit Punkten und nicht als geschachtelte Objekte ausgegeben werden.
SELECT TOP 5
BusinessEntityID As Id,
FirstName, LastName,
Title As 'Info.Title',
MiddleName As 'Info.MiddleName'
FROM Person.Person
FOR JSON AUTO
Result
[{
"Id": 1,
"FirstName": "Ken",
"LastName": "Sánchez",
"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.",
"Info.MiddleName": "A"
}]
Beispiel 2
Query
Wenn Sie Tabellen verknüpfen, werden die Spalten der ersten Tabelle als Eigenschaften des Stammobjekts generiert. Die Spalten der zweiten Tabelle werden als Eigenschaften eines geschachtelten Objekts generiert. Der Tabellenname oder Alias der zweiten Tabelle (z.B. D im folgenden Beispiel) wird als Name des geschachtelten Arrays verwendet.
SELECT TOP 2 SalesOrderNumber,
OrderDate,
UnitPrice,
OrderQty
FROM Sales.SalesOrderHeader H
INNER JOIN Sales.SalesOrderDetail D
ON H.SalesOrderID = D.SalesOrderID
FOR JSON AUTO
Result
[{
"SalesOrderNumber": "SO43659",
"OrderDate": "2011-05-31T00:00:00",
"D": [{
"UnitPrice": 24.99,
"OrderQty": 1
}]
}, {
"SalesOrderNumber": "SO43659",
"D": [{
"UnitPrice": 34.40
}, {
"UnitPrice": 134.24,
"OrderQty": 5
}]
}]
Beispiel 3
Query
Statt FOR JSON AUTO zu verwenden, können Sie eine FOR JSON PATH-Unterabfrage in der SELECT-Anweisung schachteln, wie im folgenden Beispiel gezeigt. In diesem Beispiel wird das gleiche Ergebnis ausgegeben wie im vorherigen Beispiel.
SELECT TOP 2
SalesOrderNumber,
OrderDate,
(SELECT UnitPrice, OrderQty
FROM Sales.SalesOrderDetail AS D
WHERE H.SalesOrderID = D.SalesOrderID
FOR JSON PATH) AS D
FROM Sales.SalesOrderHeader AS H
FOR JSON PATH
Result
[{
"SalesOrderNumber": "SO43659",
"OrderDate": "2011-05-31T00:00:00",
"D": [{
"UnitPrice": 24.99,
"OrderQty": 1
}]
}, {
"SalesOrderNumber": "SO4390",
"D": [{
"UnitPrice": 24.99
}]
}]
Weitere Informationen zu JSON im SQL-Datenbankmodul
Eine visuelle Einführung in die integrierte JSON-Unterstützung finden Sie in den folgenden Videos: