问题标签 [serde]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
824 浏览

rust - 如何避免 Serde 需要跳过序列化的字段的默认特征?

我有这个结构是通过用 Serde 反序列化创建的,我想在Url其中有一个未反序列化的类型字段:

操场

Serde 抱怨Url不满足这个Default特质。我试过有和没有导出Default. 是我Default为自己实现该特征的唯一选择Url吗?

0 投票
0 回答
41 浏览

asynchronous - 反序列化来自 HTTP 请求的响应时的生命周期错误

我正在制作一个 REST API 客户端,我需要将 JSON API 响应反序列化为使用serde. 我hyper用来发出 HTTP 请求。我的客户看起来像这样:

我可以这样使用它,它工作正常:

现在我想为我的客户端制作一个更好的 API 并处理get函数内部的 JSON 反序列化,所以希望像这样使用它:

我将我的get功能更改为:

但是编译器给了我一个错误,告诉我'data' does not live long enough,哪种是有道理的,但我不知道如何规避这一点。

操场

0 投票
2 回答
1377 浏览

asynchronous - 从 tokio 套接字反序列化

我正在使用 tokio 来实现一个服务器,该服务器与使用 serde(bincode)序列化的消息进行通信。如果没有异步和期货,我会做

但我需要的是一个decode可以与异步套接字一起使用的函数

我唯一的想法是在编码期间手动将长度写入缓冲区,然后使用 read_exact:

有没有更好的方法来实现解码?

0 投票
1 回答
17266 浏览

json - 使用 Serde 反序列化嵌套 JSON 结构时出现“无效类型:映射,需要序列”

我正在尝试轮询 GitHub API 的问题并将其打印出来。为此,我需要反序列化从 cURL GET 请求收到的嵌套 JSON 结构。

我正在尝试获取数组url中的所有对象:items

我的request函数发出一个 cURL 请求并接收上述 JSON。然后我使用 serde_json 反序列化 JSON

main.rs

我收到以下错误消息

我确定我在反序列化我的 JSON 结构时犯了一个愚蠢的错误,我尝试了许多排列和组合,但我无法得到任何工作。

0 投票
1 回答
3534 浏览

rust - 将 TOML 反序列化为具有值的枚举向量

我正在尝试读取一个 TOML 文件以创建一个结构,该结构包含一个带有关联值的枚举向量。这是示例代码:

货运.toml

sample_actor.toml

我知道文件看起来“错误”,但我不知道应该如何在 TOML 文件中编写操作,以便板条箱能够将它们识别为具有 X 个值的枚举。

运行此示例时遇到的错误cargo run如下:

我知道我可能需要FromStr为我的枚举实现将字符串转换为我的枚举,并且我简要地知道可以实现自定义反序列化器以特定方式反序列化,但我不确定这些部分是如何组合在一起的。

似乎使用 serde_json 而不是 TOML 的等效示例可以直接工作(当然使用 JSON 文件而不是 TOML)。

JSON版本的代码:

此示例中读取/写入的 JSON 数据为:

也许 TOML 板条箱不能支持我的用例?

0 投票
2 回答
3961 浏览

arrays - 如何使用 Serde 来(反)序列化大于 32 个元素的数组,例如 [u8; 128]?

我有一个包含字节数组的结构,我想对二进制进行序列化和反序列化,但它仅适用于最多 32 个元素的数组。

这是我的最小示例代码

main.rs

Cargo.toml

输出:

如何使它适用于数组中的 128 个元素?我可以以某种方式手动扩展array_impls!我的用户代码吗?有替代方法吗?

我认为这个问题不同于How do I map a C struct with padding over 32 bytes using serde and bincode? 因为我实际上需要数组的内容,因为它不仅仅用于填充。另外我想知道我是否可以扩展array_impls!我的代码。

0 投票
0 回答
624 浏览

rust - 如何将值反序列化为具有该值的结构和 Serde 中的 PhantomData?

我需要一些关于 URL 的额外类型信息,因此我创建了一个UrlWithPhantomdata结构,其中包含 URL 的值字段和PhantomData字段。如何使用 Serde 将字符串反序列化到这个结构中?

更具体地说,给定这个 JSON 对象:

如何将其反序列化为以下ApiData结构?

在serde-rs/serde#1048中解决了更普遍的问题,但我正在寻找一种在修复该错误之前有效的解决方案。

0 投票
1 回答
1740 浏览

json - 有没有办法在不创建细粒度对象的情况下使用 Serde 反序列化任意 JSON?

我有一个 JSON 对象,其中包含一些元数据键和一个大数据有效负载。我的服务关心用于日志记录和路由的元数据,但不关心有效负载,只是将有效负载传递给另一个服务。无论出于何种原因,我都不需要查看有效载荷内部。

现在,有效负载在我的结构中表示为serde_json::Value. 通过分析,我看到(反)序列化Value需要相当长的时间。

Serde 中是否有一种机制,我可以将有效负载捆绑在一起,而不必支付将其反序列化为组件值的成本,而只是稍后需要重新序列化它们?

0 投票
1 回答
627 浏览

json - 如何在不需要包装器类型的情况下反序列化 JSON 数组?

我想反序列化以下 JSON:

进入一个Vec<Worskpace>. Workspace定义如下:

有没有办法做到这一点而不必做类似的事情:

0 投票
1 回答
154 浏览

rust - serde_json crate 中的 Value::into 方法有什么作用?

这段代码调用val.into()函数 where valis a enum,但我在 Rust 文档中serde_json::Value找不到任何函数描述。into