JSON_TYPE() în MySQL

Tipul unei valori JSON: OBJECT, ARRAY, STRING, INTEGER, DOUBLE, BOOLEAN, NULL etc.

Sintaxă
JSON_TYPE(valoare_json)

Ce face JSON_TYPE()

JSON_TYPE() spune ce fel de valoare ai într-un document. Este util la validarea datelor venite din surse externe.

Parametri

Parametru Descriere
valoare_json Valoarea analizată.

Ce returnează

Numele tipului, cu majuscule.

Exemple

Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.

CREATE TABLE profiluri (
  id INT PRIMARY KEY,
  date JSON
);

INSERT INTO profiluri VALUES
  (1, '{"nume": "Ana", "oras": "Iași", "varsta": 31, "hobby": ["citit", "înot"], "adresa": {"strada": "Lăpușneanu", "nr": 12}}'),
  (2, '{"nume": "Dan", "oras": "Cluj", "varsta": 45, "hobby": ["ciclism"]}'),
  (3, '{"nume": "Ioana", "oras": "Iași", "varsta": 27, "hobby": []}');

Exemplul 1: Tipurile câmpurilor unui profil

SELECT JSON_TYPE(date) AS tot,
       JSON_TYPE(date->'$.nume') AS nume,
       JSON_TYPE(date->'$.varsta') AS varsta,
       JSON_TYPE(date->'$.hobby') AS hobby
FROM profiluri
WHERE id = 1;

Rezultat

+--------+--------+---------+-------+
| tot    | nume   | varsta  | hobby |
+--------+--------+---------+-------+
| OBJECT | STRING | INTEGER | ARRAY |
+--------+--------+---------+-------+

Greșeli frecvente

  • Trimiți un text obișnuit ('abc'). Nu este JSON valid și primești eroare. Un șir JSON trebuie să fie între ghilimele: '"abc"'.

Comenzi înrudite

  • JSON_VALID(): Verifică dacă un text este JSON valid (1 sau 0).
  • JSON_DEPTH(): Adâncimea maximă a unui document JSON (câte niveluri de liste/obiecte are).