1 个不稳定版本

0.1.0 2021 年 6 月 29 日

#30#extracting

MIT 许可证

19KB
576

Ryson

Ryson 是一个从字符串中提取 JSON 值的库。该库的 API 提供了一个单一的 parse 函数,可以用来从字符串获取 JSON 枚举

enum Json {
    Null,
    Bool(bool),
    Number(String),
    String(String),
    Array(Vec<Json>),
    Object(HashMap<String,Json>)
}

要使用该库,只需将以下内容添加到你的 Cargo.toml 文件的 依赖 部分

ryson = "1.0.0"

然后简单地解析任何 JSON 字符串

let text : String = String::from("{\"port\":80}");
let config : Json = ryson::Json::parse(&text).unwrap();

上面的代码将返回一个 Json 枚举,可以与所有 JSON 类型进行匹配。然后将其转换为映射并提取端口号

let map : &Hashmap<String,Json> = config.as_object().unwrap();
let port : &Json = map.get(&String::from("port")).unwrap();
let port_number : String = port.as_number().unwrap().clone();
println!("port={}",port_number);

注意,在这个库中,JSON 数字以字符串的形式表示,因为 Rust 没有内置的功能来存储大的 JS 数字。

依赖

~28KB