Passer au contenu principal
Modifie une chaîne JSON de manière aléatoire.

Syntaxe

fuzzJSON({ named_collection [, option=value [,..]] | json_str[, random_seed] })

Arguments

ArgumentDescription
named_collectionUne NAMED COLLECTION.
option=valueLes paramètres facultatifs de la collection nommée et leurs valeurs.
json_str (String)La chaîne source représentant des données structurées au format JSON.
random_seed (UInt64)Graine aléatoire définie manuellement pour produire des résultats stables.
reuse_output (boolean)Réutilise la sortie d’un processus de fuzzing comme entrée pour le fuzzer suivant.
malform_output (boolean)Génère une chaîne qui ne peut pas être interprétée comme un objet JSON.
max_output_length (UInt64)Longueur maximale autorisée de la chaîne JSON générée ou altérée.
probability (Float64)La probabilité d’appliquer le fuzzing à un champ JSON (une paire clé-valeur). Doit être comprise dans l’intervalle [0, 1].
max_nesting_level (UInt64)La profondeur maximale autorisée des structures imbriquées dans les données JSON.
max_array_size (UInt64)La taille maximale autorisée d’un tableau JSON.
max_object_size (UInt64)Le nombre maximal autorisé de champs à un même niveau d’un objet JSON.
max_string_value_length (UInt64)La longueur maximale d’une valeur de type String.
min_key_length (UInt64)La longueur minimale de la clé. Elle doit être d’au moins 1.
max_key_length (UInt64)La longueur maximale de la clé. Elle doit être supérieure ou égale à min_key_length, si celui-ci est spécifié.

Valeur de retour

Un objet de type table avec une seule colonne contenant des chaînes JSON perturbées.

Exemple d’utilisation

CREATE NAMED COLLECTION json_fuzzer AS json_str='{}';
SELECT * FROM fuzzJSON(json_fuzzer) LIMIT 3;
{"52Xz2Zd4vKNcuP2":true}
{"UPbOhOQAdPKIg91":3405264103600403024}
{"X0QUWu8yT":[]}
SELECT * FROM fuzzJSON(json_fuzzer, json_str='{"name" : "value"}', random_seed=1234) LIMIT 3;
{"key":"value", "mxPG0h1R5":"L-YQLv@9hcZbOIGrAn10%GA"}
{"BRE3":true}
{"key":"value", "SWzJdEJZ04nrpSfy":[{"3Q23y":[]}]}
SELECT * FROM fuzzJSON(json_fuzzer, json_str='{"students" : ["Alice", "Bob"]}', reuse_output=true) LIMIT 3;
{"students":["Alice", "Bob"], "nwALnRMc4pyKD9Krv":[]}
{"students":["1rNY5ZNs0wU&82t_P", "Bob"], "wLNRGzwDiMKdw":[{}]}
{"xeEk":["1rNY5ZNs0wU&82t_P", "Bob"], "wLNRGzwDiMKdw":[{}, {}]}
SELECT * FROM fuzzJSON(json_fuzzer, json_str='{"students" : ["Alice", "Bob"]}', max_output_length=512) LIMIT 3;
{"students":["Alice", "Bob"], "BREhhXj5":true}
{"NyEsSWzJdeJZ04s":["Alice", 5737924650575683711, 5346334167565345826], "BjVO2X9L":true}
{"NyEsSWzJdeJZ04s":["Alice", 5737924650575683711, 5346334167565345826], "BjVO2X9L":true, "k1SXzbSIz":[{}]}
SELECT * FROM fuzzJSON('{"id":1}', 1234) LIMIT 3;
{"id":1, "mxPG0h1R5":"L-YQLv@9hcZbOIGrAn10%GA"}
{"BRjE":16137826149911306846}
{"XjKE":15076727133550123563}
SELECT * FROM fuzzJSON(json_nc, json_str='{"name" : "FuzzJSON"}', random_seed=1337, malform_output=true) LIMIT 3;
U"name":"FuzzJSON*"SpByjZKtr2VAyHCO"falseh
{"name"keFuzzJSON, "g6vVO7TCIk":jTt^
{"DBhz":YFuzzJSON5}
Dernière modification le 29 juin 2026