JSON_UNQUOTE() în MySQL

JSON: modificare MySQL 5.7.8+

Elimină ghilimelele unui șir JSON și transformă secvențele \n, \" în caractere normale.

Sintaxă
JSON_UNQUOTE(valoare_json)

Ce face JSON_UNQUOTE()

JSON_UNQUOTE() face dintr-un șir JSON ("Ana") un text obișnuit (Ana). Se folosește aproape mereu împreună cu JSON_EXTRACT(), motiv pentru care există operatorul ->>.

Parametri

Parametru Descriere
valoare_json Un șir JSON.

Ce returnează

Textul fără ghilimele.

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: Cu și fără ghilimele

SELECT JSON_EXTRACT(date, '$.nume') AS json,
       JSON_UNQUOTE(JSON_EXTRACT(date, '$.nume')) AS text
FROM profiluri
WHERE id = 1;

Rezultat

+-------+------+
| json  | text |
+-------+------+
| "Ana" | Ana  |
+-------+------+

Greșeli frecvente

  • Aplici JSON_UNQUOTE() pe un obiect sau o listă. Pentru ele nu are efect; funcția are sens doar pentru valori de tip text.

Comenzi înrudite

  • Operatorii -> și ->>: Prescurtări pentru citirea din coloane JSON: -> dă JSON, ->> dă text simplu.
  • JSON_EXTRACT(): Citește o valoare dintr-un document JSON după o cale ca ‘$.adresa.strada’.
  • JSON_QUOTE(): Transformă un text într-un șir JSON valid: îl pune între ghilimele și escapează caracterele speciale.