5个版本 (3个破坏性更新)
0.4.0 | 2021年11月24日 |
---|---|
0.3.0 | 2021年11月18日 |
0.2.0 | 2021年11月16日 |
0.1.1 | 2021年11月11日 |
0.1.0 | 2021年11月11日 |
#1548 在 数据库接口
每月下载量614
在 2 个crate中使用(通过 libflatterer)
17KB
233 行
jsonref取消对JSONSchema的引用属性,并创建一个新的取消引用的架构。
取消引用通常在验证过程中由JSONSchema验证器执行,但有时对于像以下任务,独立于验证器执行此操作很有用:
- 通过程序分析架构以查看有哪些字段。
- 程序修改架构。
- 将架构传递给从架构创建假JSON数据的工具。
- 将架构传递给表单生成工具。
示例
use serde_json::json;
use jsonref::JsonRef;
let mut simple_example = json!(
{"properties": {"prop1": {"title": "name"},
"prop2": {"$ref": "#/properties/prop1"}}
}
);
let mut jsonref = JsonRef::new();
jsonref.deref_value(&mut simple_example).unwrap();
let dereffed_expected = json!(
{"properties":
{"prop1": {"title": "name"},
"prop2": {"title": "name"}}
}
);
assert_eq!(simple_example, dereffed_expected)
注意:如果JSONSchema有递归的$ref
,则只会发生第一次递归。这是为了避免无限循环。
依赖项
~7MB
~214K SLoC