Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre: SQL Server 2016 (13.x) és későbbi verziók
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (csak szerver nélküli SQL pool)
SQL analytics endpoint a Microsoft Fabricban
Tárház a Microsoft Fabricban
Adatbázis a Microsoft Fabricban
Ez a cikk azt ismerteti, hogyan menekíti el az SQL Server FOR JSON utasítás SELECT záradéka a speciális karaktereket, és hogyan jelöli a vezérlőkaraktereket a JSON-kimenetben.
Ez a cikk a Microsoft SQL Server JSON beépített támogatását ismerteti. A JSON-ban való meneküléssel és kódolással kapcsolatos általános információkért lásd a JSON RFC 2.5. szakaszát.
Speciális karakterek escape-elése
Ha a forrásadatok speciális karaktereket tartalmaznak, a FOR JSON záradék feloldja őket a JSON-kimenetben \, ahogyan az az alábbi táblázatban látható. Ez a menekülés mind a tulajdonságok neveiben, mind az értékükben történik.
| Speciális karakter | Kimenő kimenet |
|---|---|
Idézőjel (") |
\" |
Fordított perjel (\) |
\\ |
Perjel (/) |
\/ |
| Backspace | \b |
| Lapváltás | \f |
| Új sor | \n |
| Kocsivisszatérítés | \r |
| Vízszintes lap | \t |
Vezérlőkarakterek
Ha a forrásadatok vezérlőkarakterekből állnak, a FOR JSON záradék \u<code> formátumban kódolja őket a JSON-kimenetben, ahogyan az az alábbi táblázatban látható.
| Vezérlő karakter | Kódolt kimenet |
|---|---|
| CHAR(0) | \u0000 |
| CHAR(1) | \u0001 |
| ... | ... |
| CHAR(31) | \u001f |
Example
Íme egy példa a forrásadatok FOR JSON kimenetére, amely speciális karaktereket és vezérlő karaktereket is tartalmaz.
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"
}
]