跳转到主要内容
对 JSON 字符串进行随机变异。

语法

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

参数

参数描述
named_collection一个 NAMED COLLECTION
option=valuenamed collection 的可选参数及其对应的值。
json_str (String)表示 JSON 格式结构化数据的源字符串。
random_seed (UInt64)用于生成稳定结果的手动随机种子。
reuse_output (boolean)将一次模糊测试过程的输出复用为下一个 fuzzer 的输入。
malform_output (boolean)生成无法解析为 JSON object 的字符串。
max_output_length (UInt64)生成或扰动后的 JSON 字符串允许的最大长度。
probability (Float64)对 JSON 字段 (键值对) 进行模糊处理的概率。必须在 [0, 1] 范围内。
max_nesting_level (UInt64)JSON 数据中嵌套结构允许的最大深度。
max_array_size (UInt64)JSON array 允许的最大大小。
max_object_size (UInt64)单层 JSON object 中允许的最大字段数。
max_string_value_length (UInt64)String 值的最大长度。
min_key_length (UInt64)key 的最小长度。应至少为 1。
max_key_length (UInt64)key 的最大长度。如果指定了 min_key_length,则该值应大于或等于它。

返回值

一个仅包含单列的表对象,其中存储的是经过扰动的 JSON 字符串。

使用示例

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}
最后修改于 2026年6月10日