1 个不稳定版本
0.1.0 | 2019年6月25日 |
---|
#18 in #flatten
421 每月下载量
用于 serde_cef
11KB
76 行
serde-value-flatten
基于 serde-value
,serde-value-flatten
提供了一个函数,用于展平任何实现了 serde::Serialize
的结构体。
快速入门
您可以通过将其添加到 Cargo.toml
来开始使用它。
[dependencies]
serde = "1.0"
serde_derive = "1.0"
serde_value_flatten = "0.1"
然后,创建一个实现了 serde::Serialize
特性的结构体,并使用任何 serde 库来使用它。
示例
#[derive(Serialize, Clone, Debug)]
struct SubFoo {
a: String,
b: u64,
}
#[derive(Serialize, Clone, Debug)]
struct Foo {
a: String,
b: f64,
c: Vec<i8>,
d: SubFoo,
}
fn main() {
let foo = Foo { a: "test".into(), b: 0.5, c: vec![5, 9], d: SubFoo { a: "subtest".into(), b: 695217 } };
let ser = serde_value_flatten::to_flatten_maptree("_", Some("_"), &foo).unwrap();
println!("{}", serde_json::to_string_pretty(&ser).unwrap());
}
输出:
{
"_a": "test",
"_b": 0.5,
"_c_0": 5,
"_c_1": 9,
"_d_a": "subtest",
"_d_b": 695217
}
功能 ovh-ldp
功能 ovh-ldp
允许为字段名添加后缀,以适应 LDP 命名约定。
在您的 Cargo.toml
中设置
[dependencies]
serde = "1.0"
serde_derive = "1.0"
serde_value_flatten = { version = "0.1", features = ["ovh-ldp"] }
重新运行前面的示例,现在输出将是
{
"_a": "test",
"_b_float": 0.5,
"_c_0_long": 5,
"_c_1_long": 9,
"_d_a": "subtest",
"_d_b_double": 695217
}
许可证:BSD-3-Clause
依赖项
~335–630KB
~13K SLoC