#serde-json #serde #parser #serializer-deserializer #json #parse #config-parser

json5

一个支持 Serde 的 Rust JSON5 序列化和反序列化库。

15 个版本

0.4.1 2021 年 9 月 21 日
0.3.0 2020 年 11 月 24 日
0.2.8 2020 年 6 月 30 日
0.2.6 2020 年 3 月 30 日
0.1.0 2018 年 7 月 30 日

#38编码

Download history 181215/week @ 2024-03-14 179050/week @ 2024-03-21 178263/week @ 2024-03-28 182642/week @ 2024-04-04 186939/week @ 2024-04-11 192090/week @ 2024-04-18 179093/week @ 2024-04-25 180312/week @ 2024-05-02 188044/week @ 2024-05-09 195061/week @ 2024-05-16 182059/week @ 2024-05-23 208604/week @ 2024-05-30 211623/week @ 2024-06-06 196781/week @ 2024-06-13 185214/week @ 2024-06-20 153438/week @ 2024-06-27

786,730 每月下载量
270 crate 中使用 (117 直接使用)

ISC 许可证

40KB
956

JSON5

crates.io docs.rs

一个支持 Serde 的 Rust JSON5 序列化和反序列化库。

API

使用 from_str 从 JSON5 字符串反序列化。使用 to_string 序列化。序列化器目前非常基础,仅生成纯 JSON。有关实现 SerializeDeserialize 的详细信息,请参阅 Serde 文档。(通常只需要添加一些 derive 属性。)

支持大部分 Serde 数据模型,除了字节和借用字符串。

示例

将一些配置读入一个结构体。

use json5;
use serde_derive::Deserialize;

#[derive(Deserialize, Debug, PartialEq)]
struct Config {
    message: String,
    n: i32,
}

fn main() {
    let config = "
        {
          // A traditional message.
          message: 'hello world',

          // A number for some reason.
          n: 42,
        }
    ";

    assert_eq!(
        json5::from_str(config),
        Ok(Config {
            message: "hello world".to_string(),
            n: 42,
        }),
    );
}

依赖项

~2.2–3MB
~63K SLoC