14得票1回答
使用Serde和Bincode将大型结构体序列化到磁盘上是缓慢的

我有一个包含2³¹个u32值的向量的结构体(总大小约为8GB)。我按照bincode示例将其写入磁盘:#[macro_use] extern crate serde_derive; extern crate bincode; use std::fs::File; use bincode::s...

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

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

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

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

14得票1回答
我该如何使用serde将一个结构体序列化为另一个Rust数据结构?

我有一个数据结构文档(Document),我希望将其他Rust结构体序列化到它上面。它内部基本上是一个HashMap,用于存储字段,但是它会与数据库API交互,因此我一定需要将其他类型转换为那些文档(Document)。 例如,这个结构体: struct Entry { id: S...

14得票3回答
如何使用serde_json获取JSON文件中的特定项,而无需派生结构体?

我有一个复杂的JSON文件,我想从中提取出单个值。我可以定义所有的struct并在它们上面派生Deserialize,但我只想写一点手动代码来获取那个值。老实说,Serde文档让我感到困惑。 我的JSON内容具有以下布局:{ "data": [ { "hostname...

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

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

13得票1回答
为什么会出现“无法在此作用域中派生宏”错误?

使用 cargo build 命令编译这段代码: #![allow(unused)] use serde::{Deserialize, Serialize}; use serde_json::{Result, Value}; #[derive(Serialize, Deserialize...

13得票1回答
如何向Rust的serde传递选项,以便可以在Deserialize :: deserialize()中访问?

背景:我正在使用Rust编写光线追踪器,但是在以文件系统不可知的方式加载场景方面遇到了困难。我使用serde,以便我不必发明自己的文件格式(尚未)。资产(图像纹理和网格数据)与场景文件分别存储。场景文件仅存储这些文件的路径。由于光线追踪器本身应该是一个平台无关的库(我希望能够将其编译为WebA...

13得票4回答
我们如何编写一个通用函数来检查Serde序列化和反序列化?

在一个涉及自定义 Serde (1.0) 序列化和反序列化方法的项目中,我使用了这个测试程序来检查序列化一个对象并进行反序列化是否会产生等效的对象。 // let o: T = ...; let buf: Vec<u8> = to_vec(&o).unwrap(); le...

13得票2回答
使用serde_json在编译时反序列化文件

在我的程序开头,我从一个文件中读取数据:let file = std::fs::File::open("data/games.json").unwrap(); let data: Games = serde_json::from_reader(file).unwrap(); 出于以下原因,我想...