3 个不稳定版本

0.2.0 2023 年 7 月 21 日
0.1.1 2023 年 7 月 17 日
0.1.0 2023 年 7 月 17 日

#2211 in 编码

MIT/Apache

31KB
757

JSON 操作符

一组工具,用于操作 serde_json::Values

partial_cmp

JOPS 提供了一个比较两个 serde_json::Value 的函数。

示例

partial_cmp 函数。

use std::cmp::Ordering;
use serde_json::Value;

let a = Value::Null;
let b = Value::Null;
let res : Ordering = jops::partial_cmp(&a, &b);

JsonValue 包装器提供了 partial_cmp。

use jops;
use serde_json::Value;

let a = jops::JsonValue(&Value::Null);
let b = jops::JsonValue(&Value::Null);
let res = a > b;

JsonPath

一个 SQLite JSON Path 实现。访问对象或数组内的值。

操作符

  • $ 表示根值
  • .<name> 指向对象内具有键 name 的子值
  • <name>[<index>] 指向数组 name 中索引为 index 的值(零索引)
  • <name>[#-<offset>] 指向数组 name 中长度减去偏移量的值
  • <index> 指向根数组中索引为 index 的值(零索引)

示例

let value = serde_json::json!({ "a": "example", "b": [0,1,2] });
value.path("$"); // Returns a reference to value
value.path("$.a"); // Returns a reference to the String value "example"
value.path("$.b[1]"); // Returns a reference to the Number value 1 inside the array b
value.path("$.b[#-1]"); // Returns a reference to the Number value 1 inside the array b
let value = serde_json::json!([0,2]);
value.path("1"); // Returns a reference to the Number value 2 inside the array

许可证

根据您的选择,在 Apache License, Version 2.0MIT 许可证 下许可。

依赖

~0.5–1MB
~20K SLoC