In MariaDB, JSON_QUOTE()
ist eine integrierte Funktion, die ein gültiges JSON-String-Literal erzeugt, das in ein JSON-Dokument eingefügt werden kann.
Es umschließt die Zeichenfolge mit doppelten Anführungszeichen und maskiert innere Anführungszeichen und andere Sonderzeichen und gibt eine utf8mb4-Zeichenfolge zurück.
Syntax
Die Syntax lautet wie folgt:
JSON_QUOTE(json_value)
Beispiel
Hier ist ein Beispiel zur Veranschaulichung.
SELECT JSON_QUOTE('Small') AS 'Result';
Ergebnis:
+---------+| Ergebnis |+---------+| "Klein" |+---------+
Escapezeichen
Zusätzlich zum Einschließen der Zeichenfolge in doppelte Anführungszeichen, JSON_QUOTE()
maskiert auch innere Anführungszeichen und andere Sonderzeichen.
Beispiel:
SELECT JSON_QUOTE('By "small", she meant "tiny"') AS 'Result';
Ergebnis:
+------------------------------------+| Ergebnis |+------------------------------------+| "Mit \"klein\" meinte sie \"winzig\" |+------------------------------- ----+
In diesem Fall enthält die ursprüngliche Zeichenfolge doppelte Anführungszeichen, sodass die resultierende Zeichenfolge jedes doppelte Anführungszeichen mit einem Backslash maskiert.
Wenn die doppelten Anführungszeichen nicht maskiert würden, würden sie die äußeren doppelten Anführungszeichen stören und die Zeichenfolge versehentlich vorzeitig beenden.
JSON-Objekte
Hier ist ein Beispiel für das Zitieren einer Zeichenfolgendarstellung eines JSON-Objekts:
SELECT JSON_QUOTE('{ "name": "Brandy"}');
Ergebnis:
+-----------------------------------+| JSON_QUOTE('{ "name":"Brandy"}') |+----------------------------------------------- -+| "{ \"name\":\"Brandy\"}" |+---------------------------------------------- --+
Arrays
Hier ist ein Beispiel für das Zitieren einer Zeichenfolgendarstellung eines Arrays:
SELECT JSON_QUOTE('[ "Small", "Medium", "Large" ]');
Ergebnis:
Zahlen
Das Übergeben einer Zahl gibt NULL
zurück :
SELECT JSON_QUOTE(10) AS 'Result';
Ergebnis:
+--------+| Ergebnis |+--------+| NULL |+--------+
Die Nummer müsste als Zeichenfolge bereitgestellt werden. Es würde dann als Zeichenfolge in Anführungszeichen zurückgegeben werden.
Beispiel:
SELECT JSON_QUOTE('10') AS 'Result';
Ergebnis:
+--------+| Ergebnis |+--------+| "10" |+--------+
Null-Argumente
Wenn das Argument NULL
ist , ist das Ergebnis NULL
:
SELECT JSON_QUOTE(null);
Ergebnis:
+------------------+| JSON_QUOTE(null) |+------------------+| NULL |+------------------+
Falsche Parameteranzahl
Aufruf von JSON_QUOTE()
ohne Argument führt zu einem Fehler:
SELECT JSON_QUOTE();
Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion „JSON_QUOTE“
Das Gleiche gilt, wenn Sie zu viele Argumente angeben:
SELECT JSON_QUOTE('a', 'b');
Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion „JSON_QUOTE“
Weitere Beispiele
MariaDB JSON_QUOTE()
funktioniert genauso wie die gleichnamige MySQL-Funktion. Siehe JSON_QUOTE()
– How to Escape Characters in Strings used as JSON Values in MySQL für weitere Beispiele.