2 个版本
0.1.1 | 2022年8月24日 |
---|---|
0.1.0 | 2022年8月24日 |
#1189 在 编码
33KB
562 行
json-toolkit
json-toolkit
crate 提供了从 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 值表示,并具有可启用或禁用的功能
serde
: 在Pointer
类型上启用serde
{de}序列化,并在serde_json::Value
类型上实现ValueExt
。json
: 在json::JsonValue
类型上实现ValueExt
。
许可协议
在 MIT 许可协议下授权(LICENSE 或 http://opensource.org/licenses/MIT)
依赖项
~0.4–1MB
~23K SLoC