In MariaDB, JSON_QUOTE()
è una funzione incorporata che produce una stringa JSON valida che può essere inclusa in un documento JSON.
Avvolge la stringa con virgolette doppie ed esegue l'escape delle virgolette interne e di altri caratteri speciali, restituendo una stringa utf8mb4.
Sintassi
La sintassi è questa:
JSON_QUOTE(json_value)
Esempio
Ecco un esempio da dimostrare.
SELECT JSON_QUOTE('Small') AS 'Result';
Risultato:
+---------+ | Result | +---------+ | "Small" | +---------+
Caratteri di escape
Oltre a racchiudere la stringa tra virgolette, JSON_QUOTE()
evita anche le virgolette interne e altri caratteri speciali.
Esempio:
SELECT JSON_QUOTE('By "small", she meant "tiny"') AS 'Result';
Risultato:
+------------------------------------+ | Result | +------------------------------------+ | "By \"small\", she meant \"tiny\"" | +------------------------------------+
In questo caso, la stringa originale contiene virgolette doppie e quindi la stringa risultante esegue l'escape di ciascuna virgoletta doppia con una barra rovesciata.
Se le virgolette doppie non fossero state salvate, interferirebbero con le virgolette doppie esterne e interromperebbero inavvertitamente la stringa in anticipo.
Oggetti JSON
Ecco un esempio di citazione di una rappresentazione di stringa di un oggetto JSON:
SELECT JSON_QUOTE('{ "name": "Brandy"}');
Risultato:
+-----------------------------------+ | JSON_QUOTE('{ "name": "Brandy"}') | +-----------------------------------+ | "{ \"name\": \"Brandy\"}" | +-----------------------------------+
Array
Ecco un esempio di citazione di una rappresentazione di stringa di un array:
SELECT JSON_QUOTE('[ "Small", "Medium", "Large" ]');
Risultato:
+----------------------------------------------+ | JSON_QUOTE('[ "Small", "Medium", "Large" ]') | +----------------------------------------------+ | "[ \"Small\", \"Medium\", \"Large\" ]" | +----------------------------------------------+
Numeri
Il passaggio di un numero restituisce NULL
:
SELECT JSON_QUOTE(10) AS 'Result';
Risultato:
+--------+ | Result | +--------+ | NULL | +--------+
Il numero dovrebbe essere fornito come una stringa. Verrebbe quindi restituito come stringa tra virgolette.
Esempio:
SELECT JSON_QUOTE('10') AS 'Result';
Risultato:
+--------+ | Result | +--------+ | "10" | +--------+
Argomenti nulli
Se l'argomento è NULL
, il risultato è NULL
:
SELECT JSON_QUOTE(null);
Risultato:
+------------------+ | JSON_QUOTE(null) | +------------------+ | NULL | +------------------+
Conteggio parametri errato
Chiamando JSON_QUOTE()
senza un argomento genera un errore:
SELECT JSON_QUOTE();
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'
È lo stesso quando fornisci troppi argomenti:
SELECT JSON_QUOTE('a', 'b');
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'
Altri esempi
MariaDB JSON_QUOTE()
funziona allo stesso modo della funzione MySQL con lo stesso nome. Vedi JSON_QUOTE()
– Come eseguire l'escape dei caratteri nelle stringhe utilizzate come valori JSON in MySQL per ulteriori esempi.