Udostępnij za pośrednictwem


Usuń nawiasy kwadratowe z formatu JSON — opcja WITHOUT_ARRAY_WRAPPER

Dotyczy: SQL Server 2016 (13.x) i nowsze wersje Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics (tylko bezserwerowa pula SQL)punktu końcowego analizy SQL w usłudze Microsoft FabricWarehouse w usłudze Microsoft Fabric

Aby usunąć nawiasy kwadratowe otaczające dane wyjściowe JSON klauzuli FOR JSON domyślnie, określ opcję WITHOUT_ARRAY_WRAPPER. Użyj tej opcji z wynikiem z jednym wierszem, aby wygenerować pojedynczy obiekt JSON jako dane wyjściowe zamiast tablicy z jednym elementem.

Jeśli używasz tej opcji z wynikiem wielu wierszy, wynikowe dane wyjściowe nie są prawidłowe w formacie JSON ze względu na wiele elementów i brak nawiasów kwadratowych.

Przykład (wynik z jednym wierszem)

W poniższym przykładzie przedstawiono dane wyjściowe klauzuli FOR JSON z opcją WITHOUT_ARRAY_WRAPPER i bez niej.

Zapytanie

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

wynik z opcją WITHOUT_ARRAY_WRAPPER

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

wynik (ustawienie domyślne) bez opcji WITHOUT_ARRAY_WRAPPER

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

Przykład (rezultat z wieloma wierszami)

Oto kolejny przykład klauzuli FOR JSON z opcją WITHOUT_ARRAY_WRAPPER i bez niej. W tym przykładzie generowany jest wynik z wieloma wierszami. Dane wyjściowe nie są prawidłowe w formacie JSON z powodu wielu elementów i brakujących nawiasów kwadratowych.

Zapytanie

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

wynik z opcją 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
} 

wynik (ustawienie domyślne) bez opcji 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
}]

Dowiedz się więcej o JSON w aparacie bazy danych SQL

Klipy wideo firmy Microsoft

Aby zapoznać się z wizualnym wprowadzeniem do wbudowanej obsługi kodu JSON w programie SQL Server i usłudze Azure SQL Database, zobacz następujące wideo: