Udostępnij za pośrednictwem


Usuń nawiasy kwadratowe z formatu JSON — opcja WITHOUT_ARRAY_WRAPPER

Dotyczy: SQL Server 2016 (13.x) i nowszych Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics (tylko bezserwerowa pula SQL)

Aby domyślnie usunąć nawiasy kwadratowe otaczające dane wyjściowe JSON z klauzuli FOR JSON, należy określić 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)

Poniższy przykład przedstawia dane wyjściowe klauzuli FOR JSON z opcją WITHOUT_ARRAY_WRAPPER i bez tej opcji.

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 tej opcji. 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.

Query

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 formacie JSON w programie SQL Server i usłudze Azure SQL Database

Klipy wideo firmy Microsoft

Notatka

Niektóre linki wideo w tej sekcji mogą nie działać w tej chwili. Firma Microsoft migruje zawartość wcześniej znajdującą się na witrynie Channel 9 do nowej platformy. Zaktualizujemy linki w miarę migrowania filmów wideo na nową platformę.

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:

Zobacz też

FOR, klauzula (Transact-SQL)