Fonctions JSON (JSON1)#
avancé
Pertinent uniquement si le schéma stocke réellement du JSON. Dans une base relationnelle normalisée, ces fonctions ne servent pas.
| Fonction | Description |
|---|---|
JSON(x) |
Valide et normalise un JSON |
JSON_EXTRACT(x, chemin, ...) |
Extrait une valeur (alias -> / ->>) |
JSON_ARRAY(v1, v2, ...) |
Construit un tableau JSON |
JSON_OBJECT(cle, val, ...) |
Construit un objet JSON |
JSON_ARRAY_LENGTH(x [, chemin]) |
Longueur d'un tableau |
JSON_TYPE(x [, chemin]) |
Type de la valeur (object, array, text, ...) |
JSON_VALID(x) |
1 si JSON valide |
JSON_SET(x, chemin, valeur, ...) |
Définit/insère une valeur |
JSON_INSERT(x, chemin, valeur, ...) |
Insère si absent |
JSON_REPLACE(x, chemin, valeur, ...) |
Remplace si présent |
JSON_REMOVE(x, chemin, ...) |
Supprime une clé/valeur |
JSON_EACH(x) / JSON_TREE(x) |
Fonctions table pour itérer |
Exemples#
SELECT JSON_EXTRACT('{"nom":"Alice","age":20}', '$.nom'); -- "Alice"
SELECT '{"nom":"Alice"}' -> '$.nom'; -- "Alice" (JSON)
SELECT '{"nom":"Alice"}' ->> '$.nom'; -- Alice (texte brut)
SELECT JSON_SET('{"a":1}', '$.b', 2); -- {"a":1,"b":2}
SELECT key, value FROM JSON_EACH('[10,20,30]');
Colonne générée depuis JSON#
CREATE TABLE evenements (
id INTEGER PRIMARY KEY,
data TEXT,
nom TEXT GENERATED ALWAYS AS (JSON_EXTRACT(data, '$.nom')) VIRTUAL
);
SQLite
-> et ->> disponibles depuis SQLite 3.38 (syntaxe PostgreSQL). Extension JSON1 intégrée par défaut depuis SQLite 3.38 (avant, activation à la compilation requise).