Modalità di uso di FOR JSON delle sequenze di escape per i caratteri speciali e di controllo (SQL Server)How FOR JSON escapes special characters and control characters (SQL Server)

In questo argomento si applica a: SìSQL ServerSìDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServeryesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Questo argomento descrive il modo in cui la clausola FOR JSON di un'istruzione SELECT di SQL Server usa sequenze di escape per i caratteri speciali e rappresenta i caratteri di controllo nell'output JSON.This topic describes how the FOR JSON clause of a SQL Server SELECT statement escapes special characters and represents control characters in the JSON output.

Importante

Questa pagina descrive il supporto incorporato per JSON in Microsoft SQL Server.This page describes the built-in support for JSON in Microsoft SQL Server. Per informazioni generali sull'uso delle sequenze di escape e la codifica in JSON, vedere sezione la sezione 2.5 della specifica JSON RFC - http://www.ietf.org/rfc/rfc4627.txt.For general info about escaping and encoding in JSON, see Section 2.5 of the JSON RFC - http://www.ietf.org/rfc/rfc4627.txt.

Escape di caratteri specialiEscaping of special characters

Se i dati di origine contengono caratteri speciali, la clausola FOR JSON usa sequenze di escape per tali caratteri nell'output JSON con \, come illustrato nella tabella seguente.If the source data contains special characters, the FOR JSON clause escapes them in the JSON output with \, as shown in the following table. I caratteri di escape vengono usati sia nei nomi delle proprietà che nei relativi valori.This escaping occurs both in the names of properties and in their values.

Carattere specialeSpecial character Output con caratteri di escapeEscaped output
Virgoletta (")Quotation mark (") \"\"
Barra rovesciata (\)Backslash (\) \\
Barra (/)Slash (/) \/
BackspaceBackspace \b\b
Avanzamento cartaForm feed \f\f
Nuova rigaNew line \n
Ritorno a capoCarriage return \r\r
Tabulazione orizzontaleHorizontal tab \t\t

Caratteri di controlloControl characters

Se i dati di origine contengono caratteri di controllo, la clausola FOR JSON codifica tali caratteri nell'output JSON nel formato \u<code>, come illustrato nella tabella seguente.If the source data contains control characters, the FOR JSON clause encodes them in the JSON output in \u<code> format, as shown in the following table.

Carattere di controlloControl character Output codificatoEncoded output
CHAR(0)CHAR(0) \u0000\u0000
CHAR(1)CHAR(1) \u0001\u0001
CHAR(31)CHAR(31) \u001f\u001f

EsempioExample

Di seguito è riportato un esempio dell'output di FOR JSON per dati di origine che includono sia caratteri di escape che caratteri di controllo.Here's an example of the FOR JSON output for source data that includes both special characters and control characters.

Query:Query:

SELECT  
  'VALUE\    /  
  "' as [KEY\/"],  
  CHAR(0) as '0',  
  CHAR(1) as '1',  
  CHAR(31) as '31'  
FOR JSON PATH  

Risultato:Result:

{
    "KEY\\\t\/\"": "VALUE\\\t\/\r\n\"",
    "0": "\u0000",
    "1": "\u0001",
    "31": "\u001f"
}

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

Formattare i risultati delle query in formato JSON con FOR JSON (SQL Server)Format Query Results as JSON with FOR JSON (SQL Server)
Clausola FORFOR Clause