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 Azure Synapse Analytics (nur serverloser SQL-Pool)
Dieser Artikel beschreibt, wie die FOR JSON
-Klausel einer SELECT
-Anweisung von SQL Server Sonderzeichen schützt und Steuerzeichen in der JSON-Ausgabe darstellt.
Wichtig
Dieser Artikel beschreibt die integrierte Unterstützung für JSON in Microsoft SQL Server. Allgemeine Informationen zum Maskieren und Codierung in JSON finden Sie in Abschnitt 2.5 der JSON-Referenz.
Schutz von Sonderzeichen
Wenn die Quelldatei Sonderzeichen enthält, umgeht die FOR JSON
-Klausel diese in der JSON-Ausgabe mit \
, 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 Quelldatei Steuerzeichen enthält, kodiert die FOR JSON
-Klausel diese 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 ist ein Beispiel für die FOR JSON
-Ausgabe von Quelldaten, die Sonderzeichen und Steuerelement enthält.
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"
}
]