8 个版本 (1 个稳定版)
使用旧的 Rust 2015
1.0.0 | 2024年7月29日 |
---|---|
0.9.1 | 2019年8月19日 |
0.9.0 | 2018年12月19日 |
0.8.2 | 2018年10月17日 |
0.0.1 | 2016年6月24日 |
#80 在 解析器实现 中排名
94,306 每月下载量
在 12 个 包中(9 个直接使用)
115KB
3K SLoC
为 serde 实现的 hjson-rust
{
# specify rate in requests/second (because comments are helpful!)
rate: 1000
// prefer c-style comments?
/* feeling old fashioned? */
# did you notice that rate doesn't need quotes?
hey: look ma, no quotes for strings either!
# best of all
notice: []
anything: ?
# yes, commas are optional!
}
Hjson 的 Rust 实现基于 Serde JSON 序列化库。有关其他平台,请参阅 hjson.github.io。
此包是一个 Rust 库,用于解析和生成人类 JSON Hjson。它基于 Serde,一个高性能的通用序列化框架。
安装
此包与 Cargo 一起使用,可以在 crates.io 上找到,其 Cargo.toml
如下
[dependencies]
serde = "*"
serde-hjson = "*"
从命令行
使用 cargo install hjson
安装
Hjson, the Human JSON.
Usage:
hjson [options]
hjson [options] <input>
hjson (-h | --help)
hjson (-V | --version)
Options:
-h --help Show this screen.
-j Output as formatted JSON.
-c Output as JSON.
-V --version Show version.
示例
- 运行
hjson test.json > test.hjson
以转换为 Hjson - 运行
hjson -j test.hjson > test.json
以转换为 JSON
用法
extern crate serde;
extern crate serde_hjson;
use serde_hjson::{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> = serde_hjson::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.get(0).unwrap());
// Add a value
array.push(Value::String("tak".to_string()));
}
// Encode to Hjson
let sample2 = serde_hjson::to_string(&sample).unwrap();
println!("Hjson:\n{}", sample2);
}
API
历史
依赖项
~2.4–3.5MB
~64K SLoC