0

如何在没有键的情况下对结构进行反序列化/序列化?由于我不会更改字段的顺序,因此索引可以作为键来减少有效负载的大小。

我正在使用 serde_json 和 ciborium 板条箱,它们都具有顶级数组值。

例如,

跟随 cbor/json

["string1", 1, 1.1, [4, 34, 4, 4]]

应该转换成这个

struct Foo {
    a: String,
    b: u128,
    c: f64,
    d: Vec<u8>,
}

我可以通过使用 ciborium crate 的Value::array枚举手动执行此操作,但最终我将编写更多代码并且无法使用serde_bytescrate 有效解码Vec<u8>

4

1 回答 1

1

只需使用serde_tuple专用于“将结构反序列化为值数组”问题#637

#[derive(serde_tuple::Serialize_tuple, serde_tuple::Deserialize_tuple)]
struct Foo {
    a: String,
    b: u128,
    c: f64,
    d: Vec<u8>,
}
于 2021-09-12T12:28:47.200 回答