6 个版本
0.1.5 | 2022年9月22日 |
---|---|
0.1.4 | 2022年9月21日 |
#1827 在 编码
646 每月下载量
用于 2 crates
28KB
704 行
rust_json
为学习 Rust 编写的 JSON 序列化和反序列化器。
特性
从字符串解析 JSON
use rust_json::json_parse;
fn example() {
let j = json_parse(r#"
{
"S": [
1,
2.3,
{
"4": {
"5": {
"6": [
null,
true,
false
]
}
}
}
]
}"#);
println!("{}", j["S"]);
}
使用 JSON 字面量构建 JsonElem
use rust_json::json;
fn example() {
let j = json!(
{
"S": [
1.2,
"2.3",
{
"4": {
"5": {
"6": [
null,
true,
false
]
}
}
}
]
}
);
println!("{}", j["S"]);
}
使用 JS 对象字面量风格构建 JsonElem
use rust_json::js_object;
fn proc(n: i32) -> i32 {
n * n + n / 2
}
fn main() {
let a = true;
let n = 32;
let j = js_object!([
{
a // 属性的简洁表示 Property Shorthand
},
{
// 使用表达式作为值 Using expression
proc_n: if n % 2 == 0 { proc(n) + 1 } else { 0 },
[n * 12]: n * 12 // 属性名表达式 Computed Property Names
}
]);
println!("{}", j);
}
ToJson 和 FromJson 特性
实现 ToJson
和 FromJson
以序列化和反序列化自定义结构。或者您可以使用 rust_json_derive 来推导特性。
带有空格的字符串化
use rust_json::json;
fn example() {
let j = json!({"a": 12});
println!("{:#}", j);
// {
// "a": 12
// }
println!("{:3}", j);
// {
// "a": 12
// }
}