V MariaDB, JSON_UNQUOTE()
je vestavěná funkce, která odstraňuje uvozovky z hodnoty JSON. Jinými slovy, „odvozuje“ hodnotu JSON.
Syntaxe
Syntaxe vypadá takto:
JSON_UNQUOTE(val)
Příklad
Zde je příklad k demonstraci.
SELECT JSON_UNQUOTE('"Eggs"');
Výsledek:
+------------------------+ | JSON_UNQUOTE('"Eggs"') | +------------------------+ | Eggs | +------------------------+
Escape Characters
Pokud hodnota obsahuje znak zpětného lomítka (\
), obvykle se ignoruje. Některé sekvence obsahující zpětné lomítko však mohou mít zvláštní význam a mohou ovlivnit výsledek JSON_UNQUOTE()
.
To bude záviset na tom, zda je režim SQL nastaven na NO_BACKSLASH_ESCAPES
. Když je režim SQL nastaven na NO_BACKSLASH_ESCAPES
, tím zakážete použití znaku zpětného lomítka jako znaku escape v řetězcích, takže je ekvivalentní běžnému znaku.
Jinak budou platit následující sekvence:
Úniková sekvence | Postava |
---|---|
\" | Dvojité uvozovky (" ) |
\b | Zpětné lomítko |
\f | Formfeed |
\n | Nový řádek (odřádkování) |
\r | Vrácení vozíku |
\t | Tab |
\\ | Zpětné lomítko (\ ) |
\uXXXX | UTF-8 bajtů pro hodnotu Unicode XXXX |
Příklad:
SELECT JSON_UNQUOTE('Feeling\tGood');
Výsledek:
+-------------------------------+ | JSON_UNQUOTE('Feeling\tGood') | +-------------------------------+ | Feeling Good | +-------------------------------+
Zde jsem použil \t
sekvence pro přidání znaku tabulátoru do řetězce.
Pokud nastavím režim SQL na NO_BACKSLASH_ESCAPES
, sekvence nemá žádný zvláštní význam a doslovná sekvence je zahrnuta do výstupu bez interpretace:
SET @@sql_mode = 'NO_BACKSLASH_ESCAPES';
SELECT JSON_UNQUOTE('Feeling\tGood');
Výsledek:
+-------------------------------+ | JSON_UNQUOTE('Feeling\tGood') | +-------------------------------+ | Feeling\tGood | +-------------------------------+
Nulové argumenty
Pokud je argument NULL
, výsledkem je NULL
:
SELECT JSON_UNQUOTE(null);
Výsledek:
+--------------------+ | JSON_UNQUOTE(null) | +--------------------+ | NULL | +--------------------+
Nesprávný počet parametrů
Volání JSON_UNQUOTE()
bez argumentu vede k chybě:
SELECT JSON_UNQUOTE();
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'
Je to stejné, když uvedete příliš mnoho argumentů:
SELECT JSON_UNQUOTE('a', 'b');
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'