Supprime les champs ou éléments dont la valeur est null d'un objet ou d'un tableau JSON.
Syntaxe
JSON JSON_STRIP_NULLS(
JSON <json_expr>
[, BOOLEAN <include_arrays> ]
[, BOOLEAN <remove_empty> ]
[, STRING <json_path> ]
)
Paramètres
|
Paramètre |
Obligatoire |
Description |
|
json_expr |
Oui |
Type JSON. Objet ou tableau JSON. Pour plus de détails, consultez la rubrique JSON data type. |
|
include_arrays |
Non |
Type BOOLEAN. Indique s'il faut supprimer les valeurs nulles des tableaux JSON. Valeurs possibles :
|
|
remove_empty |
Non |
Type BOOLEAN. Indique s'il faut supprimer les objets JSON vides après le retrait des valeurs nulles. Valeurs possibles :
Remarque
Si remove_empty vaut |
|
json_path |
Non |
Type STRING. Supprime les valeurs nulles JSON situées sous le chemin json_path de l'expression json_expr . Remarque
L'utilisation du paramètre json_path nécessite exactement quatre arguments, json_path étant le quatrième. |
Valeur de retour
Renvoie une valeur de type JSON. Règles de retour :
Si la valeur d'une clé dans un objet JSON est NULL JSON, la paire clé-valeur associée est supprimée.
Si le résultat JSON ne contient aucun élément, la fonction renvoie NULL JSON.
Si json_path est NULL ou invalide, la fonction renvoie json_expr tel quel.
Si json_expr , include_arrays ou remove_empty est NULL, la fonction renvoie NULL.
Exemples
-
Exemple 1 : Suppression des valeurs nulles JSON d'un objet et d'un tableau JSON.
SELECT JSON_STRIP_NULLS(NULL) AS json_data1, JSON_STRIP_NULLS(JSON 'null') AS json_data2, JSON_STRIP_NULLS(JSON '[1, null, 2, null]') AS json_data3, JSON_STRIP_NULLS(JSON '[1, null, 2, null]', FALSE) AS json_data4, JSON_STRIP_NULLS(JSON '[1, null, 2, null, [null]]',TRUE,TRUE) AS json_data5, JSON_STRIP_NULLS(JSON '[1, null, 2, null, [null]]',NULL,TRUE) AS json_data6, JSON_STRIP_NULLS( JSON '{"a": {"b": {"c": null}}, "d": [null], "e": [], "f": 1}', FALSE,TRUE) AS json_data7, JSON_STRIP_NULLS( JSON '{"a": {"b": {"c": null}}, "d": [null], "e": [], "f": 1}', TRUE,TRUE) AS json_data8;Résultat :
+------------+------------+------------+-----------------+------------+------------+---------------------------+------------+ | json_data1 | json_data2 | json_data3 | json_data4 | json_data5 | json_data6 | json_data7 | json_data8 | +------------+------------+------------+-----------------+------------+------------+---------------------------+------------+ | NULL | null | [1,2] | [1,null,2,null] | [1,2] | NULL | {"d":[null],"e":[],"f":1} | {"f":1} | +------------+------------+------------+-----------------+------------+------------+---------------------------+------------+ -
Exemple 2 : Suppression des objets vides situés sous un chemin JSON spécifique.
SELECT JSON_STRIP_NULLS( JSON '{ "person": { "name": "Alice", "address": { "street": null, "city": "New York", "zip": null }, "phone": null }, "company": { "name": "Acme Corp", "location": null } }', true, true, '$.person.address' ) AS json_data;Résultat :
{"person":{"name":"Alice","phone":null,"address":{"city":"New York"}},"company":{"name":"Acme Corp","location":null}} -
Exemple 3 : Si
json_pathest invalide ou incorrect, la fonction n'effectue aucune modification et renvoie directementjson_expr.SELECT JSON_STRIP_NULLS( JSON '{ "person": { "name": "Alice", "address": { "street": null, "city": "New York", "zip": null }, "phone": null }, "company": { "name": "Acme Corp", "location": null }, "uid":null }', true, true, '$person.a' ) AS json_data;Résultat :
{"uid":null,"person":{"name":"Alice","phone":null,"address":{"zip":null,"city":"New York","street":null}},"company":{"name":"Acme Corp","location":null}}
Fonctions associées
La fonction JSON_STRIP_NULLS fait partie des fonctions JSON. Pour plus d'informations sur les autres fonctions de type JSON, consultez la rubrique Fonctions JSON.