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.