I MariaDB, JSON_QUOTE()
är en inbyggd funktion som producerar en giltig JSON-strängliteral som kan inkluderas i ett JSON-dokument.
Den omsluter strängen med dubbla citattecken och undviker interiöra citattecken och andra specialtecken och returnerar en utf8mb4-sträng.
Syntax
Syntaxen ser ut så här:
JSON_QUOTE(json_value)
Exempel
Här är ett exempel att visa.
SELECT JSON_QUOTE('Small') AS 'Result';
Resultat:
+---------+ | Result | +---------+ | "Small" | +---------+
Escape-tecken
Förutom att linda strängen med dubbla citattecken, JSON_QUOTE()
undkommer även interiörcitat och andra specialtecken.
Exempel:
SELECT JSON_QUOTE('By "small", she meant "tiny"') AS 'Result';
Resultat:
+------------------------------------+ | Result | +------------------------------------+ | "By \"small\", she meant \"tiny\"" | +------------------------------------+
I det här fallet innehåller den ursprungliga strängen dubbla citattecken, så den resulterande strängen undkommer varje dubbelcitattack med ett omvänt snedstreck.
Om de dubbla citattecken inte undgicks, skulle de störa de yttre citattecken och oavsiktligt avsluta strängen tidigt.
JSON-objekt
Här är ett exempel på att citera en strängrepresentation av ett JSON-objekt:
SELECT JSON_QUOTE('{ "name": "Brandy"}');
Resultat:
+-----------------------------------+ | JSON_QUOTE('{ "name": "Brandy"}') | +-----------------------------------+ | "{ \"name\": \"Brandy\"}" | +-----------------------------------+
Arrayer
Här är ett exempel på att citera en strängrepresentation av en array:
SELECT JSON_QUOTE('[ "Small", "Medium", "Large" ]');
Resultat:
+----------------------------------------------+ | JSON_QUOTE('[ "Small", "Medium", "Large" ]') | +----------------------------------------------+ | "[ \"Small\", \"Medium\", \"Large\" ]" | +----------------------------------------------+
Siffror
Att skicka ett nummer returnerar NULL
:
SELECT JSON_QUOTE(10) AS 'Result';
Resultat:
+--------+ | Result | +--------+ | NULL | +--------+
Numret måste anges som en sträng. Den skulle då returneras som en citerad sträng.
Exempel:
SELECT JSON_QUOTE('10') AS 'Result';
Resultat:
+--------+ | Result | +--------+ | "10" | +--------+
Nollargument
Om argumentet är NULL
, resultatet är NULL
:
SELECT JSON_QUOTE(null);
Resultat:
+------------------+ | JSON_QUOTE(null) | +------------------+ | NULL | +------------------+
Felaktig parameterräkning
Anropar JSON_QUOTE()
utan argument resulterar i ett fel:
SELECT JSON_QUOTE();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'
Det är samma sak när du ger för många argument:
SELECT JSON_QUOTE('a', 'b');
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'
Fler exempel
MariaDB JSON_QUOTE()
fungerar på samma sätt som MySQL-funktionen med samma namn. Se JSON_QUOTE()
– Hur man undviker tecken i strängar som används som JSON-värden i MySQL för fler exempel.