Rimuovere le parentesi quadre dall'output JSON con l'opzione WITHOUT_ARRAY_WRAPPERRemove Square Brackets from JSON - WITHOUT_ARRAY_WRAPPER Option

QUESTO ARGOMENTO SI APPLICA A: sìSQL Server (a partire dalla versione 2016)sìDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Per rimuovere le parentesi quadre che racchiudono l'output JSON della clausola FOR JSON per impostazione predefinita, specificare l'opzione WITHOUT_ARRAY_WRAPPER .To remove the square brackets that surround the JSON output of the FOR JSON clause by default, specify the WITHOUT_ARRAY_WRAPPER option. Usare questa opzione con un risultato a riga singola per generare un singolo oggetto JSON come output anziché una matrice con un singolo elemento.Use this option with a single-row result to generate a single JSON object as output instead of an array with a single element.

Se si usa questa opzione con un risultato a righe multiple, l'output risultante non sarà un oggetto JSON valido a causa dei molteplici elementi e delle parentesi quadre mancanti.If you use this option with a multiple-row result, the resulting output is not valid JSON because of the multiple elements and the missing square brackets.

Esempio (risultato a riga singola)Example (single-row result)

L'esempio seguente mostra l'output della clausola FOR JSON con e senza l'opzione WITHOUT_ARRAY_WRAPPER .The following example shows the output of the FOR JSON clause with and without the WITHOUT_ARRAY_WRAPPER option.

QueryQuery

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

Risultato con l'opzione WITHOUT_ARRAY_WRAPPERResult with the WITHOUT_ARRAY_WRAPPER option

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

Risultato (predefinito) senza l'opzione WITHOUT_ARRAY_WRAPPERResult (default) without the WITHOUT_ARRAY_WRAPPER option

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

Esempio (risultato a righe multiple)Example (multiple-row result)

Ecco un altro esempio di clausola FOR JSON con e senza l'opzione WITHOUT_ARRAY_WRAPPER .Here's another example of a FOR JSON clause with and without the WITHOUT_ARRAY_WRAPPER option. Questo esempio produce un risultato a righe multiple.This example produces a multiple-row result. L'output non è un oggetto JSON valido a causa dei molteplici elementi e delle parentesi quadre mancanti.The output is not valid JSON because of the multiple elements and the missing square brackets.

QueryQuery

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

Risultato con l'opzione WITHOUT_ARRAY_WRAPPERResult with the 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
} 

Risultato (predefinito) senza l'opzione WITHOUT_ARRAY_WRAPPERResult (default) without the 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
}]

Altre informazioni sul supporto JSON integrato in SQL ServerLearn more about the built-in JSON support in SQL Server

Per soluzioni specifiche, casi d'uso e indicazioni, vedere i post del blog sul supporto JSON integrato in SQL Server e nel database SQL di Azure redatti da Jovan Popovic, Microsoft Program Manager.For lots of specific solutions, use cases, and recommendations, see the blog posts about the built-in JSON support in SQL Server and in Azure SQL Database by Microsoft Program Manager Jovan Popovic.

Vedere ancheSee Also

Clausola FOR (Transact-SQL)FOR Clause (Transact-SQL)