Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op: SQL Server 2016 (13.x) en latere versies 
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (alleen serverloze SQL-pool)
SQL Analytics-eindpunt in Microsoft Fabric
Warehouse in Microsoft Fabric
SQL-database in Microsoft Fabric Preview
In dit artikel wordt beschreven hoe de FOR JSON-component van een SQL Server-instructie SELECT speciale tekens escapet en besturingstekens in de JSON-uitvoer vertegenwoordigt.
In dit artikel wordt de ingebouwde ondersteuning voor JSON in Microsoft SQL Server beschreven. Zie sectie 2.5 van de JSON RFC-voor algemene informatie over escapen en codering in JSON.
Escape van speciale tekens
Als de brongegevens speciale tekens bevatten, ontsnapt de FOR JSON-component deze in de JSON-uitvoer met \, zoals wordt weergegeven in de volgende tabel. Deze escape vindt plaats in zowel de namen van eigenschappen als in hun waarden.
| Special character | Escaped output | 
|---|---|
Aanhalingsteken (") | 
\" | 
Backslash (\) | 
\\ | 
Slash (/) | 
\/ | 
| Backspace | \b | 
| Form feed | \f | 
| New line | \n | 
| Carriage return | \r | 
| Horizontal tab | \t | 
Control characters
Als de brongegevens besturingstekens bevatten, codeert de FOR JSON clausule deze in de JSON-uitvoer in \u<code> formaat, zoals weergegeven in de volgende tabel.
| Control character | Encoded output | 
|---|---|
| CHAR(0) | \u0000 | 
| CHAR(1) | \u0001 | 
| ... | ... | 
| CHAR(31) | \u001f | 
Example
Hier volgt een voorbeeld van de FOR JSON-uitvoer voor brongegevens die zowel speciale tekens als besturingstekens bevatten.
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"
    }
]