I MariaDB, JSON_QUOTE()
er en indbygget funktion, der producerer en gyldig JSON streng literal, der kan inkluderes i et JSON dokument.
Den ombryder strengen med dobbelte anførselstegn og undslipper indvendige anførselstegn og andre specialtegn og returnerer en utf8mb4-streng.
Syntaks
Syntaksen ser sådan ud:
JSON_QUOTE(json_value)
Eksempel
Her er et eksempel til at demonstrere.
SELECT JSON_QUOTE('Small') AS 'Result';
Resultat:
+---------+ | Result | +---------+ | "Small" | +---------+
Escape-tegn
Ud over at pakke strengen i dobbelte anførselstegn, JSON_QUOTE()
undslipper også indvendige citater og andre specialtegn.
Eksempel:
SELECT JSON_QUOTE('By "small", she meant "tiny"') AS 'Result';
Resultat:
+------------------------------------+ | Result | +------------------------------------+ | "By \"small\", she meant \"tiny\"" | +------------------------------------+
I dette tilfælde indeholder den originale streng dobbelte anførselstegn, så den resulterende streng undslipper hvert dobbelte anførselstegn med en omvendt skråstreg.
Hvis de dobbelte anførselstegn ikke blev undgået, ville de forstyrre de ydre dobbelte anførselstegn og uforvarende afslutte strengen tidligt.
JSON-objekter
Her er et eksempel på at citere en strengrepræsentation af et JSON-objekt:
SELECT JSON_QUOTE('{ "name": "Brandy"}');
Resultat:
+-----------------------------------+ | JSON_QUOTE('{ "name": "Brandy"}') | +-----------------------------------+ | "{ \"name\": \"Brandy\"}" | +-----------------------------------+
Arrays
Her er et eksempel på at citere en strengrepræsentation af et array:
SELECT JSON_QUOTE('[ "Small", "Medium", "Large" ]');
Resultat:
+----------------------------------------------+ | JSON_QUOTE('[ "Small", "Medium", "Large" ]') | +----------------------------------------------+ | "[ \"Small\", \"Medium\", \"Large\" ]" | +----------------------------------------------+
Numre
Ved at sende et tal returneres NULL
:
SELECT JSON_QUOTE(10) AS 'Result';
Resultat:
+--------+ | Result | +--------+ | NULL | +--------+
Nummeret skal angives som en streng. Det ville derefter blive returneret som en citeret streng.
Eksempel:
SELECT JSON_QUOTE('10') AS 'Result';
Resultat:
+--------+ | Result | +--------+ | "10" | +--------+
Nul-argumenter
Hvis argumentet er NULL
, resultatet er NULL
:
SELECT JSON_QUOTE(null);
Resultat:
+------------------+ | JSON_QUOTE(null) | +------------------+ | NULL | +------------------+
Forkert parameterantal
Kalder JSON_QUOTE()
uden et argument resulterer i en fejl:
SELECT JSON_QUOTE();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'
Det er det samme, når du giver for mange argumenter:
SELECT JSON_QUOTE('a', 'b');
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'
Flere eksempler
MariaDB JSON_QUOTE()
fungerer på samme måde som MySQL-funktionen af samme navn. Se JSON_QUOTE()
– Sådan undslipper du tegn i strenge brugt som JSON-værdier i MySQL for flere eksempler.