MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

MariaDB JSON_QUOTE() erklärt

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:

+---------------------------------------------- +| JSON_QUOTE('[ "Klein", "Mittel", "Groß" ]') |+------------------------------ ----------------+| "[ \"Klein\", \"Mittel\", \"Groß\" ]" |+----------------------------------- -------------------+

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.