W MariaDB, JSON_QUOTE()
to wbudowana funkcja, która tworzy prawidłowy literał ciągu JSON, który można dołączyć do dokumentu JSON.
Zawija łańcuch znakami podwójnego cudzysłowu i omija wewnętrzne cudzysłowy i inne znaki specjalne, zwracając łańcuch utf8mb4.
Składnia
Składnia wygląda tak:
JSON_QUOTE(json_value)
Przykład
Oto przykład do zademonstrowania.
SELECT JSON_QUOTE('Small') AS 'Result';
Wynik:
+---------+ | Result | +---------+ | "Small" | +---------+
Znaki ucieczki
Oprócz zawijania ciągu w podwójne cudzysłowy, JSON_QUOTE()
unika również wewnętrznych cytatów i innych znaków specjalnych.
Przykład:
SELECT JSON_QUOTE('By "small", she meant "tiny"') AS 'Result';
Wynik:
+------------------------------------+ | Result | +------------------------------------+ | "By \"small\", she meant \"tiny\"" | +------------------------------------+
W tym przypadku oryginalny ciąg zawiera podwójne cudzysłowy, a wynikowy ciąg jest wyprowadzany z każdego podwójnego cudzysłowu ukośnikiem odwrotnym.
Jeśli podwójne cudzysłowy nie zostałyby ominięte, kolidowałyby z zewnętrznymi podwójnymi cudzysłowami i niechcący kończą wcześniej ciąg.
Obiekty JSON
Oto przykład cytowania ciągu reprezentującego obiekt JSON:
SELECT JSON_QUOTE('{ "name": "Brandy"}');
Wynik:
+-----------------------------------+ | JSON_QUOTE('{ "name": "Brandy"}') | +-----------------------------------+ | "{ \"name\": \"Brandy\"}" | +-----------------------------------+
Tablice
Oto przykład cytowania ciągu reprezentującego tablicę:
SELECT JSON_QUOTE('[ "Small", "Medium", "Large" ]');
Wynik:
+----------------------------------------------+ | JSON_QUOTE('[ "Small", "Medium", "Large" ]') | +----------------------------------------------+ | "[ \"Small\", \"Medium\", \"Large\" ]" | +----------------------------------------------+
Liczby
Przekazanie liczby zwraca NULL
:
SELECT JSON_QUOTE(10) AS 'Result';
Wynik:
+--------+ | Result | +--------+ | NULL | +--------+
Numer musiałby być podany w postaci ciągu. Następnie zostanie zwrócony jako ciąg w cudzysłowie.
Przykład:
SELECT JSON_QUOTE('10') AS 'Result';
Wynik:
+--------+ | Result | +--------+ | "10" | +--------+
Argumenty zerowe
Jeśli argumentem jest NULL
, wynik to NULL
:
SELECT JSON_QUOTE(null);
Wynik:
+------------------+ | JSON_QUOTE(null) | +------------------+ | NULL | +------------------+
Nieprawidłowa liczba parametrów
Wywołanie JSON_QUOTE()
bez argumentu powoduje błąd:
SELECT JSON_QUOTE();
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'
Tak samo jest, gdy podajesz zbyt wiele argumentów:
SELECT JSON_QUOTE('a', 'b');
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'
Więcej przykładów
MariaDB JSON_QUOTE()
działa tak samo jak funkcja MySQL o tej samej nazwie. Zobacz JSON_QUOTE()
– Jak uciec od znaków w ciągach używanych jako wartości JSON w MySQL, aby uzyskać więcej przykładów.