9得票1回答
使用Serde进行反序列化时,是否有一种方法可以允许未知的枚举标签?

我正在对一个带有标签的枚举进行反序列化: #[derive(Deserialize)] enum Foo { A(A), B(B), C(C), } 如果 Serde 遇到不是 A、B 或 C 的标签,它会抛出一个错误。是否有任何方法可以为未知的标签添加一个通用变...

20得票1回答
如何解决使用actix-web的Json类型时出现的“serde :: Deserialize的实现不够通用”的问题?

我正在使用actix-web编写一个服务器:use actix_web::{post, web, Responder}; use serde::Deserialize; #[derive(Deserialize)] struct UserModel<'a, 'b> { u...

22得票1回答
Rust&Serde JSON反序列化示例?

我正在尝试使用Serde将JSON反序列化为结构体。例如,serde_json的官方文档上的示例包含以下数据:{ "FirstName": "John", "LastName": "Doe", "Age": 43, "Address": { "S...

18得票2回答
如何使用Rust关键字属性名称解码JSON对象?

我在想是否可以在Rust中解码一个具有与Rust关键字相同的属性名称的JSON对象。我正在使用rustc-serialize创建,并且我的结构定义如下:#[derive(RustcDecodable)] struct MyObj { type: String } 编译器发生错误,因为 ty...

24得票4回答
如何区分反序列化后缺失的字段和空字段?

我希望使用Serde来解析HTTP PATCH请求中的一些JSON数据。由于PATCH请求不会传递整个对象,只会传递需要更新的相关数据,因此我需要能够区分未传递的值、明确设置为null的值和已存在的值。 我有一个具有多个可空字段的值对象:struct Resource { a: Op...

11得票3回答
如何将反序列化为trait,而不是具体类型?

我正在尝试进行结构体序列化,其中字节最终将通过管道发送,重建后并对其调用方法。 我创建了一个适当的 trait 供这些结构体实现,并使用 serde 和 serde-cbor 进行序列化:extern crate serde_cbor; #[macro_use] extern crate s...

8得票1回答
如何将reqwest响应中的字节流反序列化为JSON?

通过reqwest发出的请求正在等待长轮询响应,所以我创建了一个字节流,并尝试将每个块反序列化为JSON。但很快意识到这是错误的,因为每个块都可能不完整,因此反序列化可能会失败;即使其中一些块被反序列化为JSON,大部分也会失败。我该怎么办? #[tokio::main] async fn ...

28得票3回答
当枚举值不匹配时,我该如何反序列化枚举?

我有一个JSON结构,看起来像这样:{ "type": "suite", "event": "started", "test_count": 1 } 我想要将数据反序列化为这些结构体:#[derive(Debug, Deserialize)] enum ResultType { Sui...

8得票1回答
如何使用serde反序列化Prost枚举?

我正在使用 [prost] 从 protobuf 生成结构体。其中一个结构体非常简单: enum Direction { up = 0; down = 1; sideways = 2; } 这将生成类似以下代码的内容: #[derive(Clone, Copy, Debug...

10得票1回答
Serde:使用容器#[serde(default)],但有一些必填字段

我有一个结构体,使用了#[serde(default)]容器属性。 但是有一个字段应该是必填的(如果这个字段在传入数据中不存在,反序列化程序应该报错而不是回退到默认值)。 #[serde(default)] #[derive(Serialize, Deserialize)] struct ...