#serde-json #json #value #search #serde

json_value_search

提供搜索元素到 serde_json::Value 的接口

8 个版本 (2 个稳定版)

1.0.1 2021 年 12 月 17 日
0.1.3 2021 年 12 月 7 日
0.1.2 2021 年 12 月 6 日
0.1.1 2020 年 9 月 28 日
0.1.0 2020 年 8 月 30 日

编码 分类中排名 1818

Download history 6/week @ 2024-03-07 1/week @ 2024-03-14 1/week @ 2024-03-21 16/week @ 2024-03-28 26/week @ 2024-04-04 2/week @ 2024-04-11 2/week @ 2024-05-09 14/week @ 2024-05-16 3/week @ 2024-05-23

每月下载量 61
chewdata 中使用

MIT/Apache 协议

13KB
86

json_value_search

Actions Status semantic-release

提供搜索 json_serde::Value 中值的功能。

安装

[dependencies]
json_value_search = "1.0"

用法

extern crate json_value_search;

use json_value_search::Search;
use serde_json::Value;

let value: Value = serde_json::from_str(r#"{"field_A":[{"field.B":"value_B"},{"field_C":"value_C"}]}"#).unwrap();

let value_expected_with_wildcard: Value = serde_json::from_str(r#"[{"field.B":"value_B"},{"field_C":"value_C"}]"#).unwrap();
assert_eq!(Some(value_expected_with_wildcard),value.clone().search(r#"/field_A/*"#));

let value_expected_for_specific_field: Value = serde_json::from_str(r#"["value_B"]"#).unwrap();
assert_eq!(Some(value_expected_for_specific_field),value.clone().search(r#"/field_A/*/field.B"#));

let value_expected_for_specific_index: Value = serde_json::from_str(r#"{"field.B":"value_B"}"#).unwrap();
assert_eq!(Some(value_expected_for_specific_index),value.clone().search(r#"/field_A/0"#));

let value_expected_with_regex: Value = serde_json::from_str(r#"["value_B","value_C"]"#).unwrap();
assert_eq!(Some(value_expected_with_regex),value.clone().search(r#"/field_A/*/field.+"#));

贡献

欢迎提交拉取请求。对于重大更改,请先提交问题讨论您想进行哪些更改。

请确保根据需要更新测试。

许可证

Apache MIT

依赖项

~2.6–4MB
~71K SLoC