10得票1回答
Serde能否根据字段的值将JSON反序列化为一组类型中的一个?

我有一组不同的消息以JSON格式发送,可以根据一个单独的字段进行区分,但每个变体都有不同的次要字段集合: #[derive(Debug, Serialize, Deserialize)] struct MessageOne { ///op will always be "one" ...

23得票1回答
使用Serde反序列化嵌套的JSON结构时出现“无效类型:映射,期望序列”。

我正在尝试轮询GitHub API以获取问题并将它们打印出来。为此,我需要反序列化从cURL GET请求接收到的嵌套JSON结构。我试图获取items数组中所有对象的url:{ "total_count": 4905, "incomplete_results": false, "item...

11得票2回答
我该如何在包含成功和错误对象的JSON数组中使用Serde?

我希望使用Serde创建一个包含错误消息和适当对象的数组:extern crate serde; // 1.0.70 #[macro_use] extern crate serde_derive; // 1.0.70 extern crate serde_json; // 1.0.24 #[...

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

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

10得票1回答
如何为外部类型实现serde的Serialize和Deserialize traits?

我正在尝试为一个外部枚举实现Serialize和Deserialize,但我不知道该怎么做。它有From<u64>,所以我只想让这个对象用那个来序列化。 #[derive(Serialize, Deserialize)] pub struct ImageBinds { b...

12得票1回答
Rust Serde - 反序列化时展平路径

我想将一个相当深的 JSON 反序列化为 Rust 结构体: { "root": { "f1": { "f2": { "f3": 123 } } } } 在实现Deserialize时,我必须创建太多的结构体——对于上述...

41得票4回答
如何使用Serde将具有结构体键的HashMap序列化为JSON?

我想将一个以结构体为键的 HashMap 进行序列化:use serde::{Deserialize, Serialize}; // 1.0.68 use std::collections::HashMap; fn main() { #[derive(Serialize, Deser...

13得票2回答
在反序列化时是否有更简单的方法转换类型?

使用serde_json,我有一些包含String的JSON对象需要转换为浮点数。我已经发现了一个自定义反序列化器的解决方案,但它似乎是一种hack方法。这里是下面代码的工作示例。 #[macro_use] extern crate serde_derive; extern crate se...

14得票1回答
如何为具有生命周期成员的结构派生serde :: Deserialize?

如何为包含具有不同或相等生命周期的对象的结构体派生Deserialize? 示例代码#[derive(Default, Debug, serde::Deserialize, serde::Serialize)] struct B<'a> { b: &'a str,...

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

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