问题标签 [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.
rust - 如何避免 Serde 需要跳过序列化的字段的默认特征?
我有这个结构是通过用 Serde 反序列化创建的,我想在Url
其中有一个未反序列化的类型字段:
Serde 抱怨Url
不满足这个Default
特质。我试过有和没有导出Default
. 是我Default
为自己实现该特征的唯一选择Url
吗?
asynchronous - 反序列化来自 HTTP 请求的响应时的生命周期错误
我正在制作一个 REST API 客户端,我需要将 JSON API 响应反序列化为使用serde
. 我hyper
用来发出 HTTP 请求。我的客户看起来像这样:
我可以这样使用它,它工作正常:
现在我想为我的客户端制作一个更好的 API 并处理get
函数内部的 JSON 反序列化,所以希望像这样使用它:
我将我的get
功能更改为:
但是编译器给了我一个错误,告诉我'data' does not live long enough
,哪种是有道理的,但我不知道如何规避这一点。
asynchronous - 从 tokio 套接字反序列化
我正在使用 tokio 来实现一个服务器,该服务器与使用 serde(bincode)序列化的消息进行通信。如果没有异步和期货,我会做
但我需要的是一个decode
可以与异步套接字一起使用的函数
我唯一的想法是在编码期间手动将长度写入缓冲区,然后使用 read_exact:
有没有更好的方法来实现解码?
json - 使用 Serde 反序列化嵌套 JSON 结构时出现“无效类型:映射,需要序列”
我正在尝试轮询 GitHub API 的问题并将其打印出来。为此,我需要反序列化从 cURL GET 请求收到的嵌套 JSON 结构。
我正在尝试获取数组url
中的所有对象:items
我的request
函数发出一个 cURL 请求并接收上述 JSON。然后我使用 serde_json 反序列化 JSON
main.rs
我收到以下错误消息
我确定我在反序列化我的 JSON 结构时犯了一个愚蠢的错误,我尝试了许多排列和组合,但我无法得到任何工作。
rust - 将 TOML 反序列化为具有值的枚举向量
我正在尝试读取一个 TOML 文件以创建一个结构,该结构包含一个带有关联值的枚举向量。这是示例代码:
货运.toml
sample_actor.toml
我知道文件看起来“错误”,但我不知道应该如何在 TOML 文件中编写操作,以便板条箱能够将它们识别为具有 X 个值的枚举。
运行此示例时遇到的错误cargo run
如下:
我知道我可能需要FromStr
为我的枚举实现将字符串转换为我的枚举,并且我简要地知道可以实现自定义反序列化器以特定方式反序列化,但我不确定这些部分是如何组合在一起的。
似乎使用 serde_json 而不是 TOML 的等效示例可以直接工作(当然使用 JSON 文件而不是 TOML)。
JSON版本的代码:
此示例中读取/写入的 JSON 数据为:
也许 TOML 板条箱不能支持我的用例?
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!
我的代码。
rust - 如何将值反序列化为具有该值的结构和 Serde 中的 PhantomData?
我需要一些关于 URL 的额外类型信息,因此我创建了一个UrlWithPhantomdata
结构,其中包含 URL 的值字段和PhantomData
字段。如何使用 Serde 将字符串反序列化到这个结构中?
更具体地说,给定这个 JSON 对象:
如何将其反序列化为以下ApiData
结构?
在serde-rs/serde#1048中解决了更普遍的问题,但我正在寻找一种在修复该错误之前有效的解决方案。
json - 有没有办法在不创建细粒度对象的情况下使用 Serde 反序列化任意 JSON?
我有一个 JSON 对象,其中包含一些元数据键和一个大数据有效负载。我的服务关心用于日志记录和路由的元数据,但不关心有效负载,只是将有效负载传递给另一个服务。无论出于何种原因,我都不需要查看有效载荷内部。
现在,有效负载在我的结构中表示为serde_json::Value
. 通过分析,我看到(反)序列化Value
需要相当长的时间。
Serde 中是否有一种机制,我可以将有效负载捆绑在一起,而不必支付将其反序列化为组件值的成本,而只是稍后需要重新序列化它们?
json - 如何在不需要包装器类型的情况下反序列化 JSON 数组?
我想反序列化以下 JSON:
进入一个Vec<Worskpace>
. Workspace
定义如下:
有没有办法做到这一点而不必做类似的事情:
rust - serde_json crate 中的 Value::into 方法有什么作用?
这段代码调用val.into()
函数 where val
is a enum,但我在 Rust 文档中serde_json::Value
找不到任何函数描述。into