MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

MariaDB JSON_QUOTE() explicado


No MariaDB, JSON_QUOTE() é uma função interna que produz um literal de string JSON válido que pode ser incluído em um documento JSON.

Ele envolve a string com caracteres de aspas duplas e escapa de aspas internas e outros caracteres especiais, retornando uma string utf8mb4.

Sintaxe


A sintaxe fica assim:
JSON_QUOTE(json_value)

Exemplo


Aqui está um exemplo para demonstrar.
SELECT JSON_QUOTE('Small') AS 'Result';

Resultado:
+---------+
| Result  |
+---------+
| "Small" |
+---------+

Caracteres de escape


Além de colocar a string entre aspas duplas, JSON_QUOTE() também escapa de aspas internas e outros caracteres especiais.

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

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

Nesse caso, a string original contém aspas duplas e, portanto, a string resultante escapa de cada aspas duplas com uma barra invertida.

Se as aspas duplas não fossem escapadas, elas interfeririam nas aspas duplas externas e terminariam inadvertidamente a string mais cedo.

Objetos JSON


Aqui está um exemplo de citação de uma representação de string de um objeto JSON:
SELECT JSON_QUOTE('{ "name": "Brandy"}');

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

Matrizes


Aqui está um exemplo de citação de uma representação de string de um array:
SELECT JSON_QUOTE('[ "Small", "Medium", "Large" ]');

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

Números


Passar um número retorna NULL :
SELECT JSON_QUOTE(10) AS 'Result';

Resultado:
+--------+
| Result |
+--------+
| NULL   |
+--------+

O número precisaria ser fornecido como uma string. Em seguida, seria retornado como uma string entre aspas.

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

Resultado:
+--------+
| Result |
+--------+
| "10"   |
+--------+

Argumentos nulos


Se o argumento for NULL , o resultado é NULL :
SELECT JSON_QUOTE(null);

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

Contagem de parâmetros incorreta


Chamando JSON_QUOTE() sem um argumento resulta em um erro:
SELECT JSON_QUOTE();

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

É o mesmo quando você fornece muitos argumentos:
SELECT JSON_QUOTE('a', 'b');

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

Mais exemplos


MariaDB JSON_QUOTE() funciona da mesma forma que a função MySQL de mesmo nome. Consulte JSON_QUOTE() – Como escapar caracteres em strings usados ​​como valores JSON no MySQL para mais exemplos.