Freigeben über


Entfernen von rechteckigen Klammern von JSON-Ausgabe mit der Option WITHOUT_ARRAY_WRAPPER

Gilt für: SQL Server 2016 (13.x) und höhere Versionen Azure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse Analytics (nur serverlosen SQL-Pool)SQL-Analyseendpunkt in Microsoft FabricWarehouse in Microsoft FabricSQL-Datenbank in Microsoft Fabric

Wenn Sie die eckigen Klammern entfernen möchten, die die JSON-Ausgabe der FOR JSON Klausel standardmäßig umgeben, geben Sie die WITHOUT_ARRAY_WRAPPER Option an. Verwenden Sie diese Option mit einem einzeiligen Resultat, um ein einzelnes JSON-Objekt als Ausgabe anstelle eines Arrays mit einem einzelnen Element zu generieren.

Wenn Sie diese Option mit einem mehrzeiligen Resultat verwenden, ist die resultierende Ausgabe aufgrund von mehreren Elementen und fehlenden eckigen Klammern in keinem gültigen JSON-Format.

Beispiel (einzeiliges Resultat)

Das folgende Beispiel zeigt die Ausgabe der FOR JSON Klausel mit und ohne Option WITHOUT_ARRAY_WRAPPER .

Query

SELECT 2015 as year, 12 as month, 15 as day  
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER 

Ergebnis mit der WITHOUT_ARRAY_WRAPPER Option

{
    "year": 2015,
    "month": 12,
    "day": 15
} 

Ergebnis (Standard) ohne Option WITHOUT_ARRAY_WRAPPER

[{
    "year": 2015,
    "month": 12,
    "day": 15
}]

Beispiel (mehrzeiliges Resultat)

Hier sehen Sie ein weiteres Beispiel für eine FOR JSON Klausel mit und ohne Option WITHOUT_ARRAY_WRAPPER . In diesem Beispiel wird ein mehrzeiliges Resultat erzeugt. Die Ausgabe ist wegen mehrerer Elemente und fehlenden eckigen Klammern kein gültiges JSON.

Query

SELECT TOP 3 SalesOrderNumber, OrderDate, Status  
FROM Sales.SalesOrderHeader  
ORDER BY ModifiedDate  
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER 

Ergebnis mit der WITHOUT_ARRAY_WRAPPER Option

{
    "SalesOrderNumber": "SO43662",
    "OrderDate": "2011-05-31T00:00:00",
    "Status": 5
}, {
    "SalesOrderNumber": "SO43661",
    "OrderDate": "2011-05-31T00:00:00",
    "Status": 5
}, {
    "SalesOrderNumber": "SO43660",
    "OrderDate": "2011-05-31T00:00:00",
    "Status": 5
} 

Ergebnis (Standard) ohne Option WITHOUT_ARRAY_WRAPPER

[{
    "SalesOrderNumber": "SO43662",
    "OrderDate": "2011-05-31T00:00:00",
    "Status": 5
}, {
    "SalesOrderNumber": "SO43661",
    "OrderDate": "2011-05-31T00:00:00",
    "Status": 5
}, {
    "SalesOrderNumber": "SO43660",
    "OrderDate": "2011-05-31T00:00:00",
    "Status": 5
}]

Weitere Informationen zu JSON im SQL-Datenbankmodul

Eine visuelle Einführung in die integrierte JSON-Unterstützung finden Sie in den folgenden Videos: