问题标签 [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.
rust - 如果没有要返回的内容,如何从泛型函数返回有意义的内容?
我正在 Rust 中构建一个库,该库具有一种send
使用 reqwest 对本地 RPC 服务器执行 HTTP 请求的方法。
R
此方法在Result
where中返回泛型类型R: DeserializeOwned
。在为每个响应做出正确的类型之后,serde_json::from_str()
可以给我类型。
如果对请求没有响应,我怎样才能让send
仍然返回有意义的东西?
这是我现在的代码:
我现在被迫创建并返回一个Err
,但从技术上讲,不返回响应的请求是预期的行为,所以我想返回一个Err
.
R
我试图通过用包装来解决这个问题Option
,但这意味着我必须对每个响应进行双重解包,并且来自 reqwest 的 98% 的响应确实在其响应中包含数据,所以感觉有点矫枉过正。
我也尝试返回一个自制的EmptyResponse
类型,但编译器抱怨:expected type R, found type EmptyResponse
. 我认为返回一个类型EmptyResponse
将是我想要的,但也许有人可以就如何更好地做到这一点提供一些提示。
multithreading - 使用 serde_json::from_str 反序列化为带有 &'static 字符串的结构存在生命周期错误
我正在尝试测试我设置的用于 Dart、JS 和 Python UI 框架的 JSON 桥。它对那些工作正常,但是当我尝试使用 tui-rs 在 Rust 程序中进行相同的 UI/逻辑拆分时,在尝试反序列化 UI 线程上的逻辑线程结果时出现生命周期错误。
我知道使用 JSON 在两个用 Rust 编写的层之间进行通信并不是理想的做事方式,但考虑到我的目标,我希望它是可以理解的。
我尝试过克隆,它适用于将事物序列化并从 UI 发送到逻辑,但这不适用于从逻辑反序列化到 UI
我希望这能够反序列化BridgeResult
类型并使用其中应该包含字符串 1 的数据字段。实际上我得到:
rust - 如何通过自己的“new”构造函数反序列化结构?
我希望反序列化以下结构,但使用new
构造函数来验证反序列化的字段:
有没有简单的方法可以做到这一点?我考虑编写一个 custom Deserializer
,但我希望有一种更简单、更简洁的方法来做到这一点。
json - 反序列化之前值的 JSON 转义引号
我有一个用 Rust 编写的服务器,该服务器获取 JSON 格式的请求,服务器获取的 JSON 是一个字符串,有时用户在值内写引号。例如,在创建新论坛主题时。
我真正需要做的唯一一件事就是转义值内的引号。
所以这:
需要变成这样:
我试图替换:
但它会导致以下错误:线程''在'调用Result::unwrap()
一个Err
值时恐慌:错误(“键必须是字符串”,行:1,列:2)
我怀疑是因为它将字符串转换为以下内容:
rust - 将 JSON 解析为 rust 中的 Map
我是 Rust 的初学者,只是在解析 JSON 文件时遇到了问题。我尝试使用 serde_json 来完成任务。我知道如何将 ASCII 文件解析为字符串,以及如何将其内容解析为Value
,但我需要 aMap<String, Value>
来迭代 KVP。我没有走得太远,因为我偶然发现了一个参考错误。我尝试的方法如下:
一旦我尝试运行此代码,编译器就会抛出以下错误:
如何将 JSON 解析为Map
生锈的?我愿意使用替代板条箱,尽管 serde_json 是首选,因为它似乎是最强大的。
rust - 如何使用 serde_json 序列化 std::env:vars()?
如何使用 serde_json 序列化 std::env::vars()
以下工作,但我觉得它可以做得更好:
json - 如何在没有中间结构的情况下有效地将 JSON 的一部分提取为 Vec?
我有 JSON 内容,其中嵌套很深,有一组我想提取的数字。我不想创建中间结构,所以我尝试了以下方法:
这抱怨
如果我clone
,它工作正常:
但这似乎没有必要。我不会使用结构的其余部分。如何在无需创建中间结构且无需克隆的情况下实现这一目标?
rust - 使用泛型生命周期时,借来的值的寿命不够长。
使用泛型生命周期时,借用值的寿命不够长。</p>
函数 db.get 声明:
函数 serde_json::from_slice 声明:
错误信息:
rust - 从平面结构功能性地创建嵌套对象
我正在尝试将平面结构变成如下所示:
通过serde_json
看起来像这样的嵌套 JSON 对象:
(b
保证值在数组中是唯一的)
如果我只需要一层,我会做这样的事情:
然而,这似乎并没有扩展到多层(即(String, (String, NewType))
不能收集到Hashmap<String, Hashmap<String, NewType>>
)
在将条目转换为 json 之前,有没有比手动循环并将条目插入哈希映射更好的方法?
rust - 将 Claims 字段反序列化为字符串会返回其他字符
我需要反序列化以下有效负载,特别是aud
来自 JSON 对象的字段:
claims::aud
是一个Aud
枚举:
当我尝试从中获取 aString
时,serde_json::to_string()
它会返回两个额外的字符,一个开始字符和结束字符。
似乎可能有尾随转义字符序列化到字符串中。
是否有一种方法可以返回aud
字段返回为String
,并且在没有额外字符的情况下进行了清理?
例如"CBr3zBlrKBbwmxOAM1avZQ=="