Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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"
}
]