MariaDB
 sql >> Database >  >> RDS >> MariaDB

Spiegazione di MariaDB JSON_QUOTE()

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.