En MariaDB, JSON_QUOTE()
es una función integrada que produce un literal de cadena JSON válido que se puede incluir en un documento JSON.
Envuelve la cadena con caracteres de comillas dobles y escapa de las comillas interiores y otros caracteres especiales, devolviendo una cadena utf8mb4.
Sintaxis
La sintaxis es así:
JSON_QUOTE(json_value)
Ejemplo
Aquí hay un ejemplo para demostrarlo.
SELECT JSON_QUOTE('Small') AS 'Result';
Resultado:
+---------+ | Result | +---------+ | "Small" | +---------+
Personajes de escape
Además de envolver la cadena entre comillas dobles, JSON_QUOTE()
también escapa de las comillas interiores y otros caracteres especiales.
Ejemplo:
SELECT JSON_QUOTE('By "small", she meant "tiny"') AS 'Result';
Resultado:
+------------------------------------+ | Result | +------------------------------------+ | "By \"small\", she meant \"tiny\"" | +------------------------------------+
En este caso, la cadena original contiene comillas dobles y, por lo tanto, la cadena resultante escapa de cada comilla doble con una barra invertida.
Si las comillas dobles no se escaparan, interferirían con las comillas dobles externas y, sin darse cuenta, terminarían la cadena antes de tiempo.
Objetos JSON
Aquí hay un ejemplo de citar una representación de cadena de un objeto JSON:
SELECT JSON_QUOTE('{ "name": "Brandy"}');
Resultado:
+-----------------------------------+ | JSON_QUOTE('{ "name": "Brandy"}') | +-----------------------------------+ | "{ \"name\": \"Brandy\"}" | +-----------------------------------+
Arreglos
Aquí hay un ejemplo de citar una representación de cadena de una matriz:
SELECT JSON_QUOTE('[ "Small", "Medium", "Large" ]');
Resultado:
+----------------------------------------------+ | JSON_QUOTE('[ "Small", "Medium", "Large" ]') | +----------------------------------------------+ | "[ \"Small\", \"Medium\", \"Large\" ]" | +----------------------------------------------+
Números
Pasar un número devuelve NULL
:
SELECT JSON_QUOTE(10) AS 'Result';
Resultado:
+--------+ | Result | +--------+ | NULL | +--------+
El número debería proporcionarse como una cadena. Luego se devolvería como una cadena entrecomillada.
Ejemplo:
SELECT JSON_QUOTE('10') AS 'Result';
Resultado:
+--------+ | Result | +--------+ | "10" | +--------+
Argumentos nulos
Si el argumento es NULL
, el resultado es NULL
:
SELECT JSON_QUOTE(null);
Resultado:
+------------------+ | JSON_QUOTE(null) | +------------------+ | NULL | +------------------+
Recuento de parámetros incorrecto
Llamando a JSON_QUOTE()
sin un argumento da como resultado un error:
SELECT JSON_QUOTE();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'
Es lo mismo cuando proporciona demasiados argumentos:
SELECT JSON_QUOTE('a', 'b');
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'
Más ejemplos
MariaDB JSON_QUOTE()
funciona igual que la función MySQL del mismo nombre. Ver JSON_QUOTE()
– Cómo escapar caracteres en cadenas utilizadas como valores JSON en MySQL para obtener más ejemplos.