跳转至

JSON 验证与证据等级

不同检查证明不同事实。不要把“能解析”报告成“能完整加载”,也不要把词法出现次数当作 字段必填性的证据。

推荐顺序

  1. 运行仓库 JSON formatter,确认格式符合项目输出。
  2. 重新生成契约清单并执行 Schema、计数、源码位置和示例指针测试。
  3. 运行 json-check。当前 chkjson 检查 data/json 中对象/数组语法以及顶层字符串 type;它不是所有 loader 的完整语义加载器。
  4. 构建测试程序。测试启动会加载 core/测试数据;再运行目标类型的 Catch2 测试。
  5. 对外部 Mod,在真实 CCB 可执行文件中创建测试世界并加载该 Mod;记录版本、依赖和日志。

在 CCB 主仓库运行:

# validation: json-contract
python3 tools/json_api/generate_contracts.py --check
python3 -m unittest discover -s tools/json_api -p 'test_*.py'
# validation: json-load
make -j2 json-check

证据等级

标记 能证明什么 不能证明什么
mandatory / optional loader 中有明确字段读取证据 所有条件分支和跨字段约束
partial 已分类一部分契约 未列出的字段安全或可省略
unclassified 尚无可发布的源码分类 字段不存在
lexical_only 数据或旧文档中有同名文本 最小示例有效、字段必填、语义相同
schema: none 没有通用 validator-backed Schema loader 不会验证

生成器只读取 git ls-files 返回的 tracked 路径,并固定 190/275/306 的覆盖计数。计数变化 必须伴随注册/解析器变化和生成 diff;不得手改生成清单或生成参考页。