Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aplica a: SQL Server 2016 (13.x) y versiones
posteriores y Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (solo para SQL pool sin servidor)
punto final de SQL Analytics en Microsoft Fabric
Almacén en Microsoft Fabric
Base de datos SQL en Microsoft Fabric
En este artículo se describe cómo la cláusula FOR JSON de una instrucción SELECT de SQL Server inserta caracteres de escape en caracteres especiales y representa caracteres de control en la salida JSON.
En este artículo se describe la compatibilidad integrada con JSON en Microsoft SQL Server. Para obtener información general sobre el escape y la codificación en JSON, consulte la sección 2.5 del RFC JSON.
Secuencia de caracteres de escape en los caracteres especiales
Si los datos de origen contienen caracteres especiales, la cláusula FOR JSON inserta caracteres de escape en ellos en la salida de JSON con \, tal y como se muestra en la tabla siguiente. Esta secuencia de escape se produce tanto en los nombres de propiedades como en sus valores.
| Carácter especial | Salida escapada |
|---|---|
Comillas (") |
\" |
Barra diagonal inversa (\) |
\\ |
Barra diagonal (/) |
\/ |
| Backspace | \b |
| Avance de página | \f |
| Nueva línea | \n |
| Retorno de carro | \r |
| Tabulación horizontal | \t |
Caracteres de control
Si los datos de origen contienen caracteres de control, la cláusula FOR JSON los codifica en la salida de JSON en formato \u<code>, tal y como se muestra en la tabla siguiente.
| Carácter de control | Salida codificada |
|---|---|
| CHAR(0) | \u0000 |
| CHAR(1) | \u0001 |
| ... | ... |
| CHAR(31) | \u001f |
Example
Se trata de un ejemplo de la salida de FOR JSON en datos de origen que incluye caracteres especiales y caracteres de control.
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"
}
]
Contenido relacionado
- Dar formato a los resultados de la consulta como JSON con FOR JSON
- SELECT: cláusula FOR (Transact-SQL)
- JSON as a bridge between NoSQL and relational worlds (JSON como puente entre los universos NoSQL y relacional)