5 个不稳定版本
0.3.1 | 2023 年 1 月 19 日 |
---|---|
0.3.0 | 2023 年 1 月 15 日 |
0.2.1 | 2023 年 1 月 7 日 |
0.2.0 | 2023 年 1 月 7 日 |
0.1.0 | 2023 年 1 月 6 日 |
#2779 在 解析器实现 中
142 每月下载量
用于 metafmt
82KB
2K SLoC
fjson
一个用于解析和格式化 JSON 的 Rust 库,支持 C 风格注释和尾随逗号
使用方法
给定以下输入
// This is a JSON value with comments and trailing commas
{
/* The project name is fjson */
"project": "fjson",
"language": "Rust",
"license": [
"MIT",
],
// This project is public.
"public": true,
}
格式化为 JSONC
格式化为可读的 JSONC,适用于人类查看
let output = fjson::to_jsonc(input).unwrap();
println!("{}", output);
打印
// This is a JSON value with comments and trailing commas
{
/* The project name is fjson */
"project": "fjson",
"language": "Rust",
"license": ["MIT"],
// This project is public.
"public": true
}
格式化为有效、可读的 JSON
格式化为可读的 JSON,适用于人类查看
let output = fjson::to_json(input)?;
println!("{}", output);
打印
{
"project": "fjson",
"language": "Rust",
"license": ["MIT"],
"public": true
}
格式化为有效、紧凑的 JSON
格式化为紧凑的 JSON,适用于计算机处理
let output = fjson::to_json_compact(input)?;
println!("{}", output);
打印
{"project":"fjson","language":"Rust","license":["MIT"],"public":true}
使用 Serde 反序列化
要解析带有 C 风格注释和尾随逗号的 JSON,但通过 serde 进行反序列化,可以使用以下方法
use serde::Deserialize;
#[derive(Debug, Deserialize)]
struct Project {
project: String,
language: String,
license: Vec<String>,
public: bool,
}
let output = fjson::to_json_compact(input)?;
let project: Project = serde_json::from_str(&output)?;
println!("{:#?}", project);
依赖项
~66KB