#json #pointers #toolkit #utils #ext #serde-json

json-toolkit

一个提供指针功能和扩展第三方 JSON 类型的实用库

2 个版本

0.1.1 2022年8月24日
0.1.0 2022年8月24日

#1189编码

MIT 许可协议

33KB
562

crates.io MIT licensed Documentation CI codecov

json-toolkit

json-toolkit crate 提供了从 JSON 指针期望的所有常见操作,并支持几种 JSON 值表示

  • RFC6901 表示中使用 Pointer 类型进行编码。
  • 通过 JSON 指针操作任何 JSON 值。
use json_toolkit::{ValueExt, Pointer};
use serde_json::{Value, json};

let mut json = json!({ "foo": "bar", "zoo": { "id": 1 } });

json.insert_at(&Pointer::new("/zoo/new_field").unwrap(), "new_value").unwrap();
assert_eq!(json, json!({ "foo": "bar", "zoo": { "id": 1, "new_field": "new_value" } }));

let old_value = json.insert("foo".to_string(), 42).unwrap();
assert_eq!(old_value, Some("bar".into()));
assert_eq!(json, json!({ "foo": 42, "zoo": { "id": 1, "new_field": "new_value" } }));

let id = ValueExt::pointer(&json, &Pointer::new("/zoo/id").unwrap());
assert_eq!(id, Some(&1.into()));

特性

json-toolkit 支持几种 JSON 值表示,并具有可启用或禁用的功能

许可协议

在 MIT 许可协议下授权(LICENSEhttp://opensource.org/licenses/MIT

依赖项

~0.4–1MB
~23K SLoC