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
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.
Belangrijk
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.
Speciaal teken | Ontsnapte uitvoer |
---|---|
Aanhalingsteken (" ) |
\" |
Backslash (\ ) |
\\ |
Slash (/ ) |
\/ |
Backspace | \b |
Formulierfeed | \f |
Nieuwe regel | \n |
Regelterugloop | \r |
Horizontaal tabblad | \t |
Controlekarakters
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.
besturingsteken | gecodeerde uitvoer |
---|---|
CHAR(0) | \u0000 |
CHAR(1) | \u0001 |
... | ... |
CHAR(31) | \u001f |
Voorbeeld
Hier volgt een voorbeeld van de FOR JSON
-uitvoer voor brongegevens die zowel speciale tekens als besturingstekens bevatten.
Vraag:
SELECT 'VALUE\ /
"' AS [KEY\/"],
CHAR(0) AS '0',
CHAR(1) AS '1',
CHAR(31) AS '31'
FOR JSON PATH;
resultaat:
[
{
"KEY\\\/\"": "VALUE\\ \/\r\n \"",
"0": "\u0000",
"1": "\u0001",
"31": "\u001f"
}
]