Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server 2016 (13.x) e versioni
successive database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics (solo pool SQL senza server)
Endpoint di analisi SQL in Microsoft Fabric
Magazzino in Microsoft Fabric
Database SQL in Microsoft Fabric
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.
Questo articolo descrive il supporto predefinito per JSON in Microsoft SQL Server. Per informazioni generali sull'escape e la codifica in JSON, vedere la Sezione 2.5 di JSON RFC.
Escape dei caratteri speciali
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. L'uso dei caratteri di escape si verifica sia nei nomi delle proprietà che nei relativi valori.
| Carattere speciale | Output preceduto da escape |
|---|---|
Virgolette (") |
\" |
Barra rovesciata (\) |
\\ |
Barra obliqua (/) |
\/ |
| Backspace | \b |
| Alimentazione modulo | \f |
| Nuova riga | \n |
| Ritorno a capo | \r |
| Tabulazione orizzontale | \t |
Caratteri di controllo
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.
| Carattere di controllo | Output codificato |
|---|---|
| CHAR(0) | \u0000 |
| CHAR(1) | \u0001 |
| ... | ... |
| CHAR(31) | \u001f |
Example
Di seguito è riportato un esempio dell'output di FOR JSON per dati di origine che includono sia caratteri speciali che caratteri di controllo.
Query:
SELECT 'VALUE\ /
"' AS [KEY\/"],
CHAR(0) AS '0',
CHAR(1) AS '1',
CHAR(31) AS '31'
FOR JSON PATH;
Result:
[
{
"KEY\\\/\"": "VALUE\\ \/\r\n \"",
"0": "\u0000",
"1": "\u0001",
"31": "\u001f"
}
]
Contenuti correlati
- Formattare i risultati della query come JSON con FOR JSON
- SELECT - clausola FOR (Transact-SQL)
- JSON as a bridge between NoSQL and relational worlds (JSON come ponte tra NoSQL e gli ambienti relazionali)