MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

MariaDB JSON_QUOTE() expliqué

Dans MariaDB, JSON_QUOTE() est une fonction intégrée qui produit un littéral de chaîne JSON valide pouvant être inclus dans un document JSON.

Il enveloppe la chaîne avec des guillemets doubles et échappe les guillemets intérieurs et autres caractères spéciaux, renvoyant une chaîne utf8mb4.

Syntaxe

La syntaxe ressemble à ceci :

JSON_QUOTE(json_value)

Exemple

Voici un exemple pour illustrer.

SELECT JSON_QUOTE('Small') AS 'Result';

Résultat :

+---------+
| Result  |
+---------+
| "Small" |
+---------+

Caractères d'échappement

En plus d'envelopper la chaîne entre guillemets doubles, JSON_QUOTE() échappe également les guillemets intérieurs et autres caractères spéciaux.

Exemple :

SELECT JSON_QUOTE('By "small", she meant "tiny"') AS 'Result';

Résultat :

+------------------------------------+
| Result                             |
+------------------------------------+
| "By \"small\", she meant \"tiny\"" |
+------------------------------------+

Dans ce cas, la chaîne d'origine contient des guillemets doubles et la chaîne résultante échappe donc chaque guillemet double avec une barre oblique inverse.

Si les guillemets doubles n'étaient pas échappés, ils interféreraient avec les guillemets doubles extérieurs et termineraient par inadvertance la chaîne plus tôt.

Objets JSON

Voici un exemple de citation d'une représentation sous forme de chaîne d'un objet JSON :

SELECT JSON_QUOTE('{ "name": "Brandy"}');

Résultat :

+-----------------------------------+
| JSON_QUOTE('{ "name": "Brandy"}') |
+-----------------------------------+
| "{ \"name\": \"Brandy\"}"         |
+-----------------------------------+

Tableaux

Voici un exemple de citation d'une représentation sous forme de chaîne d'un tableau :

SELECT JSON_QUOTE('[ "Small", "Medium", "Large" ]');

Résultat :

+----------------------------------------------+
| JSON_QUOTE('[ "Small", "Medium", "Large" ]') |
+----------------------------------------------+
| "[ \"Small\", \"Medium\", \"Large\" ]"       |
+----------------------------------------------+

Numéros

Passer un nombre renvoie NULL :

SELECT JSON_QUOTE(10) AS 'Result';

Résultat :

+--------+
| Result |
+--------+
| NULL   |
+--------+

Le numéro devra être fourni sous forme de chaîne. Il serait alors renvoyé sous la forme d'une chaîne entre guillemets.

Exemple :

SELECT JSON_QUOTE('10') AS 'Result';

Résultat :

+--------+
| Result |
+--------+
| "10"   |
+--------+

Arguments nuls

Si l'argument est NULL , le résultat est NULL :

SELECT JSON_QUOTE(null);

Résultat :

+------------------+
| JSON_QUOTE(null) |
+------------------+
| NULL             |
+------------------+

Nombre de paramètres incorrect

Appel de JSON_QUOTE() sans argument génère une erreur :

SELECT JSON_QUOTE();

Résultat :

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'

Il en va de même lorsque vous fournissez trop d'arguments :

SELECT JSON_QUOTE('a', 'b');

Résultat :

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'

Plus d'exemples

MariaDB JSON_QUOTE() fonctionne de la même manière que la fonction MySQL du même nom. Voir JSON_QUOTE() – Comment échapper les caractères dans les chaînes utilisées comme valeurs JSON dans MySQL pour plus d'exemples.