Schutz von Sonderzeichen und Steuerzeichen durch FOR JSON (SQL Server)
Gilt für: SQL Server 2016 (13.x) und höher
Azure SQL-Datenbank
Azure SQL Managed Instance
In diesem Artikel wird beschrieben, wie die FOR JSON
Klausel einer SQL Server-Anweisung SELECT
Sonderzeichen escapet und Steuerzeichen in der JSON-Ausgabe darstellt.
Wichtig
In diesem Artikel wird die integrierte Unterstützung für JSON in Microsoft SQL Server beschrieben. Allgemeine Informationen zum Escapeen und Codieren in JSON finden Sie in Abschnitt 2.5 des JSON RFC.
Escapezeichen von Sonderzeichen
Wenn die Quelldaten Sonderzeichen enthalten, wird die FOR JSON
Klausel in der JSON-Ausgabe mit \
escapes, wie in der folgenden Tabelle dargestellt. Dieser Schutz tritt in den Namen von Eigenschaften und in ihren Werte auf.
Sonderzeichen | Ausgabe mit Escapezeichen |
---|---|
Anführungszeichen (" ) |
\" |
Umgekehrter Schrägstrich (\ ) |
\\ |
Schrägstrich (/ ) |
\/ |
Rücktaste | \b |
Seitenvorschub | \f |
Zeilenwechsel | \n |
Wagenrücklauf | \r |
Horizontaler Tabulator | \t |
Steuerzeichen
Wenn die Quelldaten Steuerzeichen enthalten, codiert die FOR JSON
Klausel sie in der JSON-Ausgabe im \u<code>
Format, wie in der folgenden Tabelle dargestellt.
Steuerzeichen | Codierte Ausgabe |
---|---|
CHAR(0) | \u0000 |
CHAR(1) | \u0001 |
... | ... |
CHAR(31) | \u001f |
Beispiel
Hier sehen Sie ein Beispiel für die FOR JSON
Ausgabe für Quelldaten, die Sowohl Sonderzeichen als auch Steuerzeichen enthalten.
Abfrage:
SELECT 'VALUE\ /
"' AS [KEY\/"],
CHAR(0) AS '0',
CHAR(1) AS '1',
CHAR(31) AS '31'
FOR JSON PATH;
Ergebnis:
[
{
"KEY\\\/\"": "VALUE\\ \/\r\n \"",
"0": "\u0000",
"1": "\u0001",
"31": "\u001f"
}
]