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

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

37得票3回答
如何在序列化空值或默认值时避免生成JSON?

serde_json::to_string() 函数生成的字符串可能包括 null(对于 Option<T>)或 0(对于 u32)等这些值。这会使输出变大,因此我想忽略这些值。 我希望简化以下结构的 JSON 字符串输出:use serde_derive::Serialize;...

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

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

28得票2回答
当函数返回一个serde Deserialize类型时,如何解决生命周期错误?

我使用serde和serde_json 1.0来解码从base64字符串中获取的数据: fn from_base64_str<T: Deserialize>(string: &str) -> T { let slice = decode_config(str...

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

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

16得票1回答
Rust使用Reqwest处理错误响应体

我在我的Rust应用程序中使用reqwest(版本0.10.4)crate进行HTTP调用,但是找不到如何处理可能返回多个可能响应体的API调用的示例,主要是为了错误处理。 例如,API调用可以响应成功的JSON结构,或者格式为错误结构的结构:{ "errors": ["..."] ...

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

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

14得票1回答
如何为同一Serde字段接受多个反序列化名称?

我想使用Serde来反序列化基于以下结构体的JSON (serde-json) 和 XML (serde-xml-rs) 文件:use serde_derive::Deserialize; #[derive(Debug, Clone, PartialEq, Deserialize)] pub...

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

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

12得票1回答
在 Rust 中将 JSON 解析为 Map

我在Rust方面还是入门级别,刚刚遇到了解析JSON文件的问题。我尝试使用serde_json来完成任务。我知道如何将ASCII文件解析为字符串,并将其内容解析为Value,但我需要一个Map<String, Value>以便迭代KVPs。由于引用错误,我的尝试没有取得太大进展。我...