Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Cet article explique comment la clause FOR JSON d’une instruction SQL Server SELECT place dans une séquence d’échappement les caractères spéciaux et représente les caractères de contrôle dans la sortie JSON.
Cet article décrit la prise en charge intégrée de JSON dans Microsoft SQL Server. Pour obtenir des informations générales sur l’échappement et l’encodage dans JSON, consultez la section 2.5 du RFC JSON.
Échappement des caractères spéciaux
Si les données sources contiennent des caractères spéciaux, la clause FOR JSON les place dans la sortie JSON avec \, comme indiqué dans le tableau suivant. Cette opération se produit pour les noms des propriétés et leurs valeurs.
| Caractère spécial | Résultat échappé |
|---|---|
Guillemet (") |
\" |
Barre oblique inverse (\) |
\\ |
Barre oblique (/) |
\/ |
| Backspace | \b |
| Flux de formulaire | \f |
| Nouvelle ligne | \n |
| Retour chariot | \r |
| Tabulation horizontale | \t |
Caractères de contrôle
Si les données sources contiennent des caractères de contrôle, la clause FOR JSON les encode dans la sortie JSON au format \u<code>, comme indiqué dans le tableau suivant.
| Caractère de contrôle | Sortie encodée |
|---|---|
| CHAR(0) | \u0000 |
| CHAR(1) | \u0001 |
| ... | ... |
| CHAR(31) | \u001f |
Example
Voici un exemple de sortie FOR JSON pour des données sources contenant des caractères spéciaux et des caractères de contrôle.
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"
}
]