Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2016 (13.x) a novější verze
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (pouze bezserverový fond SQL)
Koncový bod analýzy SQL ve službě Microsoft Fabric
Sklad v Microsoft Fabric
SQL databáze v Microsoft Fabric
Tento článek popisuje, jak klauzule FOR JSON příkazu SQL Server SELECT nahrazuje speciální znaky a zobrazuje řídicí znaky ve výstupu JSON.
Tento článek popisuje integrovanou podporu json v Microsoft SQL Serveru. Obecné informace o escapingu a kódování ve formátu JSON naleznete v sekci 2.5 JSON RFC.
Escapování speciálních znaků
Pokud zdrojová data obsahují speciální znaky, klauzule FOR JSON je ve výstupu JSON převede a nahradí pomocí \, jak je znázorněno v následující tabulce. Tento únik se vyskytuje jak v názvech vlastností, tak v jejich hodnotách.
| Speciální znak | Escapovaný výstup |
|---|---|
Uvozovky (") |
\" |
Zpětné lomítko (\) |
\\ |
Lomítko (/) |
\/ |
| Backspace | \b |
| Podávání formuláře | \f |
| Nový řádek | \n |
| Návrat vozíku | \r |
| Horizontální tabulátor | \t |
Řídicí znaky
Pokud zdrojová data obsahují řídicí znaky, klauzule FOR JSON je zakóduje ve výstupu JSON ve formátu \u<code>, jak je znázorněno v následující tabulce.
| Řídicí znak | Kódovaný výstup |
|---|---|
| CHAR(0) | \u0000 |
| CHAR(1) | \u0001 |
| ... | ... |
| CHAR(31) | \u001f |
Example
Tady je příklad výstupu FOR JSON pro zdrojová data, která obsahují speciální znaky i řídicí znaky.
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"
}
]