In MariaDB, JSON_QUOTE()
is een ingebouwde functie die een geldige JSON-tekenreeks produceert die in een JSON-document kan worden opgenomen.
Het omhult de tekenreeks met dubbele aanhalingstekens en ontsnapt aan binnenste aanhalingstekens en andere speciale tekens, waardoor een utf8mb4-tekenreeks wordt geretourneerd.
Syntaxis
De syntaxis gaat als volgt:
JSON_QUOTE(json_value)
Voorbeeld
Hier is een voorbeeld om te demonstreren.
SELECT JSON_QUOTE('Small') AS 'Result';
Resultaat:
+---------+ | Result | +---------+ | "Small" | +---------+
Escape-tekens
Naast het omwikkelen van de string tussen dubbele aanhalingstekens, JSON_QUOTE()
ontsnapt ook aan aanhalingstekens in het interieur en andere speciale tekens.
Voorbeeld:
SELECT JSON_QUOTE('By "small", she meant "tiny"') AS 'Result';
Resultaat:
+------------------------------------+ | Result | +------------------------------------+ | "By \"small\", she meant \"tiny\"" | +------------------------------------+
In dit geval bevat de oorspronkelijke tekenreeks dubbele aanhalingstekens en dus ontsnapt de resulterende tekenreeks aan elk dubbel aanhalingsteken met een backslash.
Als de dubbele aanhalingstekens niet waren ontsnapt, zouden ze de buitenste dubbele aanhalingstekens verstoren en de tekenreeks per ongeluk vroegtijdig beëindigen.
JSON-objecten
Hier is een voorbeeld van het citeren van een tekenreeksrepresentatie van een JSON-object:
SELECT JSON_QUOTE('{ "name": "Brandy"}');
Resultaat:
+-----------------------------------+ | JSON_QUOTE('{ "name": "Brandy"}') | +-----------------------------------+ | "{ \"name\": \"Brandy\"}" | +-----------------------------------+
Arrays
Hier is een voorbeeld van het citeren van een tekenreeksrepresentatie van een array:
SELECT JSON_QUOTE('[ "Small", "Medium", "Large" ]');
Resultaat:
+----------------------------------------------+ | JSON_QUOTE('[ "Small", "Medium", "Large" ]') | +----------------------------------------------+ | "[ \"Small\", \"Medium\", \"Large\" ]" | +----------------------------------------------+
Cijfers
Het doorgeven van een getal levert NULL
op :
SELECT JSON_QUOTE(10) AS 'Result';
Resultaat:
+--------+ | Result | +--------+ | NULL | +--------+
Het nummer moet als een tekenreeks worden opgegeven. Het zou dan worden geretourneerd als een tekenreeks tussen aanhalingstekens.
Voorbeeld:
SELECT JSON_QUOTE('10') AS 'Result';
Resultaat:
+--------+ | Result | +--------+ | "10" | +--------+
Nullargumenten
Als het argument NULL
is , het resultaat is NULL
:
SELECT JSON_QUOTE(null);
Resultaat:
+------------------+ | JSON_QUOTE(null) | +------------------+ | NULL | +------------------+
Onjuist aantal parameters
Aanroepen van JSON_QUOTE()
zonder een argument resulteert in een fout:
SELECT JSON_QUOTE();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'
Het is hetzelfde als je te veel argumenten geeft:
SELECT JSON_QUOTE('a', 'b');
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'
Meer voorbeelden
MariaDB JSON_QUOTE()
werkt hetzelfde als de MySQL-functie met dezelfde naam. Zie JSON_QUOTE()
– Hoe tekens in tekenreeksen te ontsnappen die worden gebruikt als JSON-waarden in MySQL voor meer voorbeelden.