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.