Estrarre JSON da MariaDB e MySQL

Mattepuffo's logo
Estrarre JSON da MariaDB e MySQL

Estrarre JSON da MariaDB e MySQL

In MariaDB, e MySQL, abbiamo diverse funzioni per estrarre/fare il parsing JSON.

In questo articolo ne vediamo alcune (sicuramente ci sono altre funzioni/modi).

Cominciamo con JSON_EXTRACT:

SELECT JSON_EXTRACT(
               '{
                 "titolo": "IT",
                 "autore": "Stephen King",
                 "prezzp": 25
               }',
               '$.titolo'
           );

Oppure:

SELECT JSON_EXTRACT(
               '{
                 "titolo": "IT",
                 "autore": "Stephen King",
                 "prezzp": 25
               }',
               '$.titolo', '$.autore'
           );

Però i valori ci vengono rappresentati da virgolette.

Possiamo usare JSON_UNQUOTE per evitare questa cosa:

SELECT JSON_UNQUOTE(
               JSON_EXTRACT(
                       '{
                         "titolo": "IT",
                         "autore": "Stephen King",
                         "prezzp": 25
                       }',
                       '$.titolo'
                   )
           );

Un'altra funzione utile è JSON_VALUE:

SELECT JSON_VALUE(
               '{
                 "titolo": "IT",
                 "autore": "Stephen King",
                 "prezzp": 25
               }',
               '$.titolo'
           );

Poi abbiamo anche la possibilità di usare anche gli operati -> e ->>.

Supponiamo di avere una tabella libri con due campi:

  • libro_id
  • libro_json

Possiamo estrapolare in campi dei JSON così:

SELECT 
    libro_id,
    libro_json -> '$.titolo',
    libro_json -> '$.autore'
FROM libri;

Per levare le virgolette:

SELECT 
    libro_id,
    libro_json ->> '$.titolo',
    libro_json ->> '$.autore'
FROM libri;

Enjoy!


Condividi

Commentami!