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...

19得票3回答
如果有必要,如何在Rust中添加多态trait对象的反序列化?

我正在尝试解决序列化和反序列化Box<SomeTrait>的问题。我知道在封闭类型层次结构的情况下,推荐的方法是使用枚举,并且它们的序列化没有问题,但在我的情况下,使用枚举是不合适的解决方案。 起初,我尝试使用Serde,因为它是Rust序列化机制的事实标准。 Serde能够序列...

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

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

18得票1回答
Rust Diesel:特性约束`NaiveDateTime: Deserialize<'_>`未满足。

我是rust和diesel的新手,正在尝试使用rocket框架创建一个小型演示api。 出现错误:无法满足特性约束NaiveDateTime: Deserialize&lt;'_&gt; 我搜寻并找到了一些有用的链接,例如这里:https://github.com/serde-rs/serde...

17得票3回答
如何对serde(deserialize_with)中使用的反序列化函数进行单元测试?

我有一个结构体,实现了Deserialize并在一个字段上使用了serde(deserialize_with):#[derive(Debug, Deserialize)] struct Record { name: String, #[serde(deserialize_wit...

16得票3回答
使用Serde将两种类型转换为单一类型

我正在编写一个程序,该程序钩入到一个发送JSON响应的Web服务中。 当某个属性不存在时,它提供一个空对象,其中所有字段都为空字符串,而不是排除该值。当该属性存在时,某些属性为u64。我如何让Serde处理这种情况? Rust结构体#[derive(Clone, Debug, Deseri...

15得票4回答
使用`serde::Serialize`与`Option<chrono::DateTime>`

尝试对Option&lt;chrono::DateTime&lt;Utc&gt;&gt;进行序列化时,遇到了一个错误: error[E0308]: mismatched types --&gt; src/main.rs:39:14 | 39 | #[derive(Seria...

15得票2回答
如何为chrono时间戳使用自定义serde反序列化器?

我正在尝试将JSON解析为一个包含chrono::DateTime字段的结构体。JSON中的时间戳以我编写的特定格式保存,我编写了反序列化器。 我该如何使用#[serde(deserialize_with)]将两者连接起来并使其正常工作? 为了简化代码,我正在使用NaiveDateTime。e...

15得票5回答
将一个JSON字符串或字符串数组反序列化为Vec。

我正在编写一个与JSON web API交互的crate。其中一个端点通常返回以下形式的响应:{ "key": ["value1", "value2"] },但有时关键字只有一个值,端点返回的是{ "key": "value" }而不是{ "key": ["value"] } 我想编写一个通...

15得票2回答
如何使用serde_json和Value枚举处理可能缺失的字段?

我有一个JSON数据流,其中一些JSON对象可能缺少某些字段或者拥有我预先不知道的字段。 我的解决方案是使用:let v: Value = serde_json::from_str(data)?; 如何处理访问字段stuff的问题?如果我知道它存在,我可以使用:v["stuff"] 如果我的数...