问题标签 [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 投票
1 回答
230 浏览

json - 使用 rust 反序列化具有多个可能值的 JSON

所以我正在用 Rust 编写一个程序(我对它很陌生),它读取一个 json 配置文件并根据输入做一些事情。我设法使用serde_json成功解析了 json 。我想让用户做的下一件事是能够指定一些高级选项,但我不知道如何解析输入。默认的 json 看起来像这样:

将其解析为这样的结构:

我将如何为用户添加能够输入 abool或 an的选项object

我试过使用enum这样的,但似乎bool不能在枚举中使用。

我是否遗漏了一些明显的东西,或者我应该重组输入 json 吗?提前Tnx。

0 投票
1 回答
199 浏览

rust - serde_json to json 在柴油数据库对象中打印附加字符串 \r 和 \n

游乐场链接

它工作得很好,但在我的服务器上我得到了这个

唯一的区别是我从数据库中获取数据

柴油查询

model.rs 中的实际用户

谢马尔

0 投票
0 回答
55 浏览

rust - 是否可以丢弃解析失败的项目,继续用serde_json解析?

我有一个非常大的 JSON 文件。其中大部分是有效的 JSON 数据,但部分不是。以下是我的案例的简化:

第一项是有效的并且将被成功解析,但是当尝试第二项时,反序列化将失败,因为 UTF-8 根本不允许该\ud835字符,而 UTF-16 不允许一个单独的\ud835字符,因为它需要然后是另一个十六进制转义。

使用使用 Python 的内置 JSON 反序列化器并将数据保存到数据库的 HTTP 服务器时,会出现此问题。Python 的反序列化程序接受了一个单独的“\ud835”字符,该字符不是有效的 UTF-8 或 UTF-16。现在,当我们想使用 serde 将此应用程序和数据库迁移到 Rust 时,它会捕获这个无效的 UTF-8/16 字符串。

0 投票
1 回答
319 浏览

rust - 如何部分反序列化 JSON 对象?

我有一个 JSON 对象:

将其反序列化为自定义类型已经可以正常工作,使用:

我想要的是{"foo":1,"bar":2}切片&[u8],以便我可以检查签名。

(我知道有关规范 JSON 表示的问题,并已采取缓解措施。)

目前,我正在浪费地将对象(在对象内)重新序列化为字符串并从中获取八位字节。ContentSignedContent

有没有更有效的方法?

0 投票
1 回答
444 浏览

rust - 使用 into_serde 反序列化字符串会使应用程序恐慌

我的一个朋友正在尝试使用serde_jsoncrate 反序列化 WebSocket 发送的一些消息。

我们遇到了一个特定的错误,我们设法使用以下代码片段重新创建它:

我们的 TOML 有以下依赖:

错误如下:

任何帮助将不胜感激,因为我们仍在努力理解我们做错了什么以及为什么我们不能反序列化我们的String.

0 投票
2 回答
751 浏览

rust - 使用 Box 为结构实现反序列化

包含 Box 作为成员变量的结构:

现在出现了自定义实现反序列化以使结构反Inner序列化的问题:

进入结构内部:

我知道serde不实现反序列Box<T>化,并且必须手动实现反序列化,这是我的代码遵循文档给出的示例

但是,当我运行这些代码时,会出现错误:

粗略地说,我猜问题(***)出在街区,但不知道如何解决。如何正确实施Deserialize我的用例?

0 投票
1 回答
135 浏览

rust - Rust complaining about lifetime on the method I am writing

I am struggling to learn Rust with his lifetime. So I am making the method bellow in a web client wrapper.

When I try to compile I get that:

How do I make &full last since I am trying to return it?

0 投票
2 回答
922 浏览

rust - 当 JSON 结构更改而不重新编译时,如何动态定义 serde_json 的结构?

例如,我们添加一个在 *.rs 脚本中使用的结构

这是由

当我将字段更改width: u32,n_width: u32,JSON 时,我们会将结构更改为

与其将其添加到 *.rs 文件并每次都更新它,不如将结构提取到配置文件并在函数调用时更新和加载?

将结构与 *.rs 文件分开是否有任何安全或性能影响?

是否有更好的匿名/未命名方式可以在不需要更新结构的情况下对 JSON 进行更改?

根据下面的评论,使用serde_json::Value是一种选择,但这是一种可以用来代替强类型结构的安全方法吗?我担心内存安全和防止恶意用户访问 JSON 文件的操作的安全性。

假设n_width本程序中不需要对该字段进行进一步的引用,因此Rust开发团队无需打开代码,只需JSON团队对JSON文件和struct文件进行修改即可。

0 投票
2 回答
693 浏览

rust - 是否可以覆盖 Rust 中的默认特征实现?

我没有在高级特征的道路上徘徊太多,但我想知道是否可以通过创建一个仅覆盖更复杂特征的一个或三个函数的特征来节省重写/复制和粘贴九个函数。

这是我今晚用 PrettyFormatter 做的一些实验serde_json,我想创建一个 PrettyFormatter 的版本,它只是改变了 Vec 的打印方式

我应该注意到这个想法来自这个答案,不同之处在于我正在使用 serde_json 并且对删除代码重复感兴趣,但答案可能仍然是“不可能,请检查RFC ”。不能重用已经可用的代码似乎很浪费。

这是我似乎失败的最小案例:

具体来说,错误是这样的:

可以复制和粘贴大约 320 行,但我非常喜欢编写尽可能少的代码。如果这可能的,我想向那个箱子提交一个 PR,这样其他人就可以从 PrettyFormatter 特征中工作。

0 投票
1 回答
353 浏览

rust - 如何将 json 模式作为数据传递给 actix web?

我想将预编译的 json 模式传递给 actix web,但编译器抱怨Value用于创建的借用的JSONSchema寿命不够长。有没有办法解决这个问题?

例子:

来自 rustc 的错误:

我是生锈的新手,所以如果这是一个伪装的通用生锈问题,我深表歉意(一旦我的理解得到改善,我很乐意用更小的可重复性修改这个问题)。