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"
    }
]

Nächste Schritte