相关疑难解决方法(0)

rust serde - 反序列化时展平路径

我想将一个相当深的 JSON 反序列化为 Rust 结构:

{
  "root": {
    "f1": {
      "f2": {
         "f3": 123
       }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

推导时Deserialize,我将不得不创建太多的结构 - 对于上述 JSON 的每个级别一个:

struct Root {
  f1: Field1
}
struct Field1 {
  f2: Field2
}
struct Field3 {
  f3: Field3
}
// ...
Run Code Online (Sandbox Code Playgroud)

有什么方法可以避免拥有这么多的结构。我没有找到任何对派生有帮助的属性。我想要这样的东西:

struct Root {
  // some attr?
  f3: u64
}
Run Code Online (Sandbox Code Playgroud)

当然,可以实现自定义反序列化,但我想知道是否有默认的方法来实现这一点。

json rust serde

12
推荐指数
1
解决办法
1842
查看次数

标签 统计

json ×1

rust ×1

serde ×1