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数据库接口

Download history 33/week @ 2024-04-05 36/week @ 2024-04-12 74/week @ 2024-04-19 112/week @ 2024-04-26 127/week @ 2024-05-03 115/week @ 2024-05-10 170/week @ 2024-05-17 77/week @ 2024-05-24 185/week @ 2024-05-31 119/week @ 2024-06-07 253/week @ 2024-06-14 169/week @ 2024-06-21 146/week @ 2024-06-28 232/week @ 2024-07-05 132/week @ 2024-07-12 67/week @ 2024-07-19

每月下载量614
2 个crate中使用(通过 libflatterer

MIT 许可证

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