sql >> Base de Datos >  >> RDS >> MariaDB

MariaDB JSON_QUOTE() explicado

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.