问题标签 [serde-json]

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 回答
332 浏览

rust - 如果没有要返回的内容,如何从泛型函数返回有意义的内容?

我正在 Rust 中构建一个库,该库具有一种send使用 reqwest 对本地 RPC 服务器执行 HTTP 请求的方法。

R此方法在Resultwhere中返回泛型类型R: DeserializeOwned。在为每个响应做出正确的类型之后,serde_json::from_str()可以给我类型。

如果对请求没有响应,我怎样才能让send仍然返回有意义的东西?

这是我现在的代码:

我现在被迫创建并返回一个Err,但从技术上讲,不返回响应的请求是预期的行为,所以我想返回一个Err.

R我试图通过用包装来解决这个问题Option,但这意味着我必须对每个响应进行双重解包,并且来自 reqwest 的 98% 的响应确实在其响应中包含数据,所以感觉有点矫枉过正。

我也尝试返回一个自制的EmptyResponse类型,但编译器抱怨:expected type R, found type EmptyResponse. 我认为返回一个类型EmptyResponse将是我想要的,但也许有人可以就如何更好地做到这一点提供一些提示。

0 投票
1 回答
1661 浏览

multithreading - 使用 serde_json::from_str 反序列化为带有 &'static 字符串的结构存在生命周期错误

我正在尝试测试我设置的用于 Dart、JS 和 Python UI 框架的 JSON 桥。它对那些工作正常,但是当我尝试使用 tui-rs 在 Rust 程序中进行相同的 UI/逻辑拆分时,在尝试反序列化 UI 线程上的逻辑线程结果时出现生命周期错误。

我知道使用 JSON 在两个用 Rust 编写的层之间进行通信并不是理想的做事方式,但考虑到我的目标,我希望它是可以理解的。

我尝试过克隆,它适用于将事物序列化并从 UI 发送到逻辑,但这不适用于从逻辑反序列化到 UI

我希望这能够反序列化BridgeResult类型并使用其中应该包含字符串 1 的数据字段。实际上我得到:

0 投票
0 回答
205 浏览

rust - 如何通过自己的“new”构造函数反序列化结构?

我希望反序列化以下结构,但使用new构造函数来验证反序列化的字段:

有没有简单的方法可以做到这一点?我考虑编写一个 custom Deserializer,但我希望有一种更简单、更简洁的方法来做到这一点。

0 投票
1 回答
1643 浏览

json - 反序列化之前值的 JSON 转义引号

我有一个用 Rust 编写的服务器,该服务器获取 JSON 格式的请求,服务器获取的 JSON 是一个字符串,有时用户在值内写引号。例如,在创建新论坛主题时。

我真正需要做的唯一一件事就是转义值内的引号。

所以这:

需要变成这样:

我试图替换:

但它会导致以下错误:线程''在'调用Result::unwrap()一个Err值时恐慌:错误(“键必须是字符串”,行:1,列:2)

我怀疑是因为它将字符串转换为以下内容:

0 投票
1 回答
5260 浏览

rust - 将 JSON 解析为 rust 中的 Map

我是 Rust 的初学者,只是在解析 JSON 文件时遇到了问题。我尝试使用 serde_json 来完成任务。我知道如何将 ASCII 文件解析为字符串,以及如何将其内容解析为Value,但我需要 aMap<String, Value>来迭代 KVP。我没有走得太远,因为我偶然发现了一个参考错误。我尝试的方法如下:

一旦我尝试运行此代码,编译器就会抛出以下错误:

如何将 JSON 解析为Map生锈的?我愿意使用替代板条箱,尽管 serde_json 是首选,因为它似乎是最强大的。

0 投票
1 回答
132 浏览

rust - 如何使用 serde_json 序列化 std::env:vars()?

如何使用 serde_json 序列化 std::env::vars()

以下工作,但我觉得它可以做得更好:

0 投票
2 回答
1050 浏览

json - 如何在没有中间结构的情况下有效地将 JSON 的一部分提取为 Vec?

我有 JSON 内容,其中嵌套很深,有一组我想提取的数字。我不想创建中间结构,所以我尝试了以下方法:

这抱怨

如果我clone,它工作正常:

但这似乎没有必要。我不会使用结构的其余部分。如何在无需创建中间结构且无需克隆的情况下实现这一目标?

0 投票
1 回答
744 浏览

rust - 使用泛型生命周期时,借来的值的寿命不够长。

使用泛型生命周期时,借用值的寿命不够长。</p>

函数 db.get 声明:

函数 serde_json::from_slice 声明:

错误信息:

0 投票
2 回答
513 浏览

rust - 从平面结构功能性地创建嵌套对象

我正在尝试将平面结构变成如下所示:

通过serde_json看起来像这样的嵌套 JSON 对象:

b保证值在数组中是唯一的)

如果我只需要一层,我会做这样的事情:

然而,这似乎并没有扩展到多层(即(String, (String, NewType))不能收集到Hashmap<String, Hashmap<String, NewType>>

在将条目转换为 json 之前,有没有比手动循环并将条目插入哈希映射更好的方法?

0 投票
2 回答
517 浏览

rust - 将 Claims 字段反序列化为字符串会返回其他字符

我需要反序列化以下有效负载,特别是aud来自 JSON 对象的字段:

claims::aud是一个Aud枚举:

当我尝试从中获取 aString时,serde_json::to_string()它会返回两个额外的字符,一个开始字符和结束字符。

似乎可能有尾随转义字符序列化到字符串中。
是否有一种方法可以返回aud字段返回为String,并且在没有额外字符的情况下进行了清理?
例如"CBr3zBlrKBbwmxOAM1avZQ=="