#json #query #jmespath

nightly jmespath-macros

静态编译 JMESPath 表达式

2 个版本

使用旧的 Rust 2015

0.1.1 2017年8月26日
0.1.0 2016年12月16日

494#query

MIT 许可证

16KB
322

jmespath-macros

jmespath-macros 包提供用于静态编译 JMESPath 表达式的 jmespath! 宏。

通过静态编译 JMESPath 表达式,您在编译时而不是在运行时付出了解析和编译 JMESPath 表达式的代价,并且可以确信如果您的程序可以编译,该表达式是有效的。

注意: 这只适用于 nightly 编译器。

#![feature(plugin)]

#![plugin(jmespath_macros)]
extern crate jmespath;

fn main() {
    // Create our statically compiled expression. The build will fail
    // if the expression is invalid.
    let expr = jmespath!("foo.bar");

    // Parse some JSON data into a JMESPath variable
    let json_str = r#"{"foo": {"bar": true}}"#;
    let data = jmespath::Variable::from_json(json_str).unwrap();
    let result = expr.search(data).unwrap();
    assert_eq!(true, result.as_boolean().unwrap());
}

lib.rs:

此包提供用于静态编译 JMESPath 表达式的 jmespath! 宏。

通过静态编译 JMESPath 表达式,您在编译时而不是在运行时付出了解析和编译 JMESPath 表达式的代价,并且可以确信如果您的程序可以编译,该表达式是有效的。

注意:这只适用于 nightly 编译器。

#![feature(plugin)]

#![plugin(jmespath-macros)]
extern crate jmespath;

fn main() {
    // Create our statically compiled expression. The build will fail
    // if the expression is invalid.
    let expr = jmespath!("foo.bar");

    // Parse some JSON data into a JMESPath variable
    let json_str = "{\"foo\":{\"bar\":true}}";
    let data = jmespath::Variable::from_json(json_str).unwrap();
    let result = expr.search(data).unwrap();
    assert_eq!(true, result.as_boolean().unwrap());
}

依赖项