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 neuere Versionen
Azure SQL-Datenbank
azure SQL Managed Instance
Azure Synapse Analytics (nur serverloser SQL-Pool)
SQL Analytics-Endpunkt in Microsoft Fabric
Warehouse in Microsoft Fabric
Um die Kontrolle über die Ausgabe der FOR JSON
-Klausel beizubehalten, geben Sie die option PATH
an.
mit PATH
Modus können Sie Wrapperobjekte erstellen und komplexe Eigenschaften schachteln. Die Ergebnisse werden wie ein JSON-Objekt-Array formatiert.
Alternativ können Sie die Option AUTO
verwenden, um die Ausgabe automatisch basierend auf der Struktur der SELECT
-Anweisung zu formatieren.
- Weitere Informationen zur Option
AUTO
finden Sie unter Format JSON Output Automatically with AUTO Mode (Automatisches Formatieren der JSON-Ausgabe im AUTO-Modus). - Eine Übersicht über beide Optionen finden Sie unter Formatieren von Abfrageergebnissen als JSON mit FOR JSON-.
Hier sind einige Beispiele für die FOR JSON
-Klausel mit der option PATH
. Formatieren Sie verschachtelte Ergebnisse mit punktgetrennten Spaltennamen oder verschachtelten Abfragen, wie in den folgenden Beispielen gezeigt. Nullwerte sind standardmäßig nicht in FOR JSON
Ausgabe enthalten. 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.
Beispiel – Durch Punkte getrennte Spaltennamen
Die ersten fünf Zeilen der AdventureWorks-Tabelle Person
werden durch die Abfrage als JSON formatiert.
Die FOR JSON PATH
Klausel verwendet den Spaltenalias oder Spaltennamen, um den Schlüsselnamen in der JSON-Ausgabe zu bestimmen. Wenn ein Alias Punkte enthält, erstellt die option PATH
geschachtelte Objekte.
Abfrage
SELECT TOP 5
BusinessEntityID As Id,
FirstName, LastName,
Title As 'Info.Title',
MiddleName As 'Info.MiddleName'
FROM Person.Person
FOR JSON PATH
Ergebnis
[{
"Id": 1,
"FirstName": "Ken",
"LastName": "Sanchez",
"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.",
"MiddleName": "A"
}
}]
Beispiel – Mehrere Tabellen
Wenn Sie in einer Abfrage auf mehr als eine Tabelle verweisen, schachtelt FOR JSON PATH
jede Spalte mithilfe des Alias. Die folgende Abfrage erstellt ein JSON-Objekt pro (OrderHeader, OrderDetails
) Paar, das in der Abfrage verknüpft ist.
Abfrage
SELECT TOP 2 H.SalesOrderNumber AS 'Order.Number',
H.OrderDate AS 'Order.Date',
D.UnitPrice AS 'Product.Price',
D.OrderQty AS 'Product.Quantity'
FROM Sales.SalesOrderHeader H
INNER JOIN Sales.SalesOrderDetail D
ON H.SalesOrderID = D.SalesOrderID
FOR JSON PATH
Ergebnis
[{
"Order": {
"Number": "SO43659",
"Date": "2011-05-31T00:00:00"
},
"Product": {
"Price": 2024.9940,
"Quantity": 1
}
}, {
"Order": {
"Number": "SO43659"
},
"Product": {
"Price": 2024.9940
}
}]
Weitere Informationen zu JSON im SQL-Datenbankmodul
Eine visuelle Einführung in die JSON-Unterstützung, die in SQL Server und Azure SQL-Datenbank integriert ist, finden Sie in den folgenden Videos: