77 个版本 (重大变更)

新版本 0.97.1 2024 年 8 月 21 日
0.96.1 2024 年 7 月 29 日
0.91.0 2024 年 3 月 5 日
0.88.1 2023 年 12 月 14 日
0.23.0 2020 年 11 月 24 日

编码 中排名第 353

Download history 1658/week @ 2024-05-02 1215/week @ 2024-05-09 1272/week @ 2024-05-16 1601/week @ 2024-05-23 2585/week @ 2024-05-30 1513/week @ 2024-06-06 1238/week @ 2024-06-13 1701/week @ 2024-06-20 1357/week @ 2024-06-27 1266/week @ 2024-07-04 1046/week @ 2024-07-11 1420/week @ 2024-07-18 2180/week @ 2024-07-25 1324/week @ 2024-08-01 1250/week @ 2024-08-08 1404/week @ 2024-08-15

每月下载量 6,714
用于 24crate(直接使用 4 个)

MIT 许可证

110KB
3K SLoC

nu-json

crate

serde_hjson 的分支。

对此 crate 的更改记录在 CHANGELOG 中。

Hjson 的 Rust 实现基于 Serde JSON 序列化库

这是一个用于解析和生成人类 JSON 的 Rust 库 Hjson。它基于 Serde,这是一个高性能的通用序列化框架。

安装

此 crate 与 Cargo 一起使用,可以在 crates.io 上找到,其 Cargo.toml 看起来像这样

[dependencies]
serde = "1"
nu-json = "0.76"

从命令行

使用

 cargo add serde
 cargo add nu-json

用法

extern crate serde;
extern crate nu_json;

use nu_json::{Map,Value};

fn main() {

    // Now let's look at decoding Hjson data

    let sample_text=r#"
    {
        ## specify rate in requests/second
        rate: 1000
        array:
        [
            foo
            bar
        ]
    }"#;

    // Decode and unwrap.
    let mut sample: Map<String, Value> = nu_json::from_str(&sample_text).unwrap();

    // scope to control lifetime of borrow
    {
        // Extract the rate
        let rate = sample.get("rate").unwrap().as_f64().unwrap();
        println!("rate: {}", rate);

        // Extract the array
        let array : &mut Vec<Value> = sample.get_mut("array").unwrap().as_array_mut().unwrap();
        println!("first: {}", array.first().unwrap());

        // Add a value
        array.push(Value::String("baz".to_string()));
    }

    // Encode to Hjson
    let sample2 = nu_json::to_string(&sample).unwrap();
    println!("Hjson:\n{}", sample2);
}

文档

目前,关于 serde_hjson / serde_json 的文档对 nu-json 也适用。

依赖关系

~0.6–1.2MB
~23K SLoC