V MariaDB, JSON_QUOTE()
je vestavěná funkce, která vytváří platný řetězcový literál JSON, který lze zahrnout do dokumentu JSON.
Zabalí řetězec do dvojitých uvozovek a uvozuje vnitřní uvozovky a další speciální znaky a vrací řetězec utf8mb4.
Syntaxe
Syntaxe vypadá takto:
JSON_QUOTE(json_value)
Příklad
Zde je příklad k demonstraci.
SELECT JSON_QUOTE('Small') AS 'Result';
Výsledek:
+---------+ | Result | +---------+ | "Small" | +---------+
Escape Characters
Kromě zabalení řetězce do dvojitých uvozovek, JSON_QUOTE()
také vynechá vnitřní uvozovky a další speciální znaky.
Příklad:
SELECT JSON_QUOTE('By "small", she meant "tiny"') AS 'Result';
Výsledek:
+------------------------------------+ | Result | +------------------------------------+ | "By \"small\", she meant \"tiny\"" | +------------------------------------+
V tomto případě původní řetězec obsahuje dvojité uvozovky, takže výsledný řetězec uvozuje každou dvojitou uvozovku zpětným lomítkem.
Pokud by dvojité uvozovky nebyly escapovány, rušily by vnější dvojité uvozovky a nedopatřením by předčasně ukončily řetězec.
Objekty JSON
Zde je příklad citování řetězcové reprezentace objektu JSON:
SELECT JSON_QUOTE('{ "name": "Brandy"}');
Výsledek:
+-----------------------------------+ | JSON_QUOTE('{ "name": "Brandy"}') | +-----------------------------------+ | "{ \"name\": \"Brandy\"}" | +-----------------------------------+
Pole
Zde je příklad citování řetězcové reprezentace pole:
SELECT JSON_QUOTE('[ "Small", "Medium", "Large" ]');
Výsledek:
+----------------------------------------------+ | JSON_QUOTE('[ "Small", "Medium", "Large" ]') | +----------------------------------------------+ | "[ \"Small\", \"Medium\", \"Large\" ]" | +----------------------------------------------+
Čísla
Předání čísla vrátí NULL
:
SELECT JSON_QUOTE(10) AS 'Result';
Výsledek:
+--------+ | Result | +--------+ | NULL | +--------+
Číslo by bylo nutné zadat jako řetězec. Poté by byl vrácen jako řetězec v uvozovkách.
Příklad:
SELECT JSON_QUOTE('10') AS 'Result';
Výsledek:
+--------+ | Result | +--------+ | "10" | +--------+
Nulové argumenty
Pokud je argument NULL
, výsledkem je NULL
:
SELECT JSON_QUOTE(null);
Výsledek:
+------------------+ | JSON_QUOTE(null) | +------------------+ | NULL | +------------------+
Nesprávný počet parametrů
Volání JSON_QUOTE()
bez argumentu vede k chybě:
SELECT JSON_QUOTE();
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'
Je to stejné, když uvedete příliš mnoho argumentů:
SELECT JSON_QUOTE('a', 'b');
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'
Další příklady
MariaDB JSON_QUOTE()
funguje stejně jako stejnojmenná funkce MySQL. Viz JSON_QUOTE()
– Jak uniknout znakům v řetězcích používaných jako hodnoty JSON v MySQL pro další příklady.