Sdílet prostřednictvím


Odebrání hranatých závorek z JSON – možnost WITHOUT_ARRAY_WRAPPER

platí pro: SQL Server 2016 (13.x) a novější verze Azure SQL Databaseazure SQL Managed InstanceAzure Synapse Analytics (jenom bezserverový fond SQL)koncový bod SQL Analytics v Microsoft FabricWarehouse v Microsoft Fabric

Pokud chcete ve výchozím nastavení odebrat hranaté závorky, které obklopují výstup JSON klauzule FOR JSON, zadejte možnost WITHOUT_ARRAY_WRAPPER. Tuto možnost použijte s výsledkem s jedním řádkem k vygenerování jednoho objektu JSON jako výstupu místo pole s jedním prvkem.

Pokud tuto možnost použijete s výsledkem, který má více řádků, výsledný výstup není platný JSON kvůli více prvkům a chybějícím hranatým závorkám.

Příklad (výsledek s jedním řádkem)

Následující příklad ukazuje výstup klauzule FOR JSON s možností WITHOUT_ARRAY_WRAPPER a bez této možnosti.

dotazu

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

výsledek s možností WITHOUT_ARRAY_WRAPPER

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

výsledek (výchozí) bez možnosti WITHOUT_ARRAY_WRAPPER

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

Příklad (výsledek s více řádky)

Tady je další příklad klauzule FOR JSON s možností WITHOUT_ARRAY_WRAPPER a bez této možnosti. Tento příklad vytvoří výsledek s více řádky. Výstup není platný JSON kvůli více prvkům a chybějícím hranatým závorkám.

dotazu

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

výsledek s možností 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
} 

výsledek (výchozí) bez možnosti 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
}]

Další informace o formátu JSON v databázovém stroji SQL

Videa Microsoftu

Pro vizuální úvod do vestavěné podpory JSON v SQL Serveru a Azure SQL databázi si prohlédněte následující videa: