#json #jq #data-processing #interface #filter #programs #run

j9

Rust对基于jq的JSON处理提供的接口

4个版本

0.1.3 2024年3月23日
0.1.2 2024年3月20日
0.1.1 2024年3月17日
0.1.0 2024年3月4日

#15 in #jq

每月 41 次下载

MIT 协议

4MB
120K SLoC

C 115K SLoC // 0.1% comments Python 1.5K SLoC // 0.1% comments Happy 1K SLoC M4 437 SLoC // 0.4% comments Automake 404 SLoC // 0.1% comments C++ 334 SLoC // 0.1% comments jq 277 SLoC // 0.1% comments Jinja2 260 SLoC Shell 153 SLoC // 0.1% comments Rust 142 SLoC // 0.1% comments RPM Specfile 50 SLoC // 0.1% comments JavaScript 33 SLoC Batch 14 SLoC

j9

j9 提供了一个高级API,可以从Rust代码中运行jq程序,简化了在JSON数据上执行jq过滤器。

使用方法

要使用j9,请在Cargo.toml中将它添加为依赖项

[dependencies]
j9 = "0.1.3"

示例

use j9;

fn main() -> anyhow::Result<()> {
    let json_str = r#"{ "number": 1 }"#;
    let jq = j9::run(".", json_str)?;
    println!("{:?}", jq);
    Ok(())
}

此示例运行最简单的jq程序(.),输出未更改的输入JSON。对于更复杂的jq程序,只需将"."替换为您自己的jq过滤器。


lib.rs:

j9 是一个Rust包,提供了一个高级接口到 jq JSON处理库。它允许Rust应用程序编译和执行JSON输入上的 jq 脚本,并以Rust字符串的形式返回处理结果。此包抽象掉了使用 jq 库时涉及的不安全操作和直接FFI调用,提供了一个安全且符合Rust风格的API。

依赖项