2

我正在编写一个将 json 对象作为输入的微服务。这个 json 对象只是部分已知的,因此我映射到的结构如下所示:

#[derive(Serialize, Deserialize)]
pub struct Incoming {
    uri: String,
    payload: serde_json::Value,
    id: String
}

然后我想将其发布到 RabbitMQ 队列,因此我使用以下命令对其进行序列化bincode

let incoming = serde_json::from_slice::<Incoming>(&incoming).expect("Fail to serialize");
// This line fails:
bincode::serialize(&incoming).expect("Failed to deserialize to binary");

接收服务(消费者)无法反序列化它(即使它具有完全相同的模型)并导致Err(DeserializeAnyNotSupported).

据我了解,这来自serde_json::Value结构的 - 部分。那么如何将部分未知的 JSON 对象序列化为二进制,以便在接收服务上对其进行反序列化呢?

4

0 回答 0