Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: SQL Server 2016 (13.x) och senare versioner
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (endast serverlös SQL-pool)
SQL-analysslutpunkt i Microsoft Fabric
Warehouse i Microsoft Fabric
SQL-databas i Microsoft Fabric
Den här artikeln beskriver hur satsen i FOR JSON en SQL Server-instruktion SELECT undflyr specialtecken och representerar kontrolltecken i JSON-utdata.
I den här artikeln beskrivs det inbyggda stödet för JSON i Microsoft SQL Server. Allmän information om maskning och kodning i JSON finns i avsnitt 2.5 i JSON RFC.
Escape av specialtecken
Om källdata innehåller specialtecken FOR JSON kommer satsen att undvika dem i JSON-utdata med \, som visas i följande tabell. Den här utrymningen sker både i egenskapernas namn och i deras värden.
| Specialtecken | Undantagna utdata |
|---|---|
Citattecken (") |
\" |
Omvänt snedstreck (\) |
\\ |
Snedstreck (/) |
\/ |
| Backspace | \b |
| Formulärfeed | \f |
| Ny rad | \n |
| Vagnretur | \r |
| Horisontell tabb | \t |
Kontrollera tecken
Om källdata innehåller kontrolltecken FOR JSON kodar satsen dem i JSON-utdata i \u<code> format, enligt följande tabell.
| Kontrolltecken | Kodade utdata |
|---|---|
| CHAR(0) | \u0000 |
| CHAR(1) | \u0001 |
| ... | ... |
| CHAR(31) | \u001f |
Example
Här är ett exempel på FOR JSON utdata för källdata som innehåller både specialtecken och kontrolltecken.
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"
}
]