问题标签 [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 回答
141 浏览

json - Rust 反序列化 JSON

我在反序列化从客户端发送的 json 数据时遇到问题。

服务器.rs

客户端.rs

当我将 json 数据发送到服务器时,我收到一个错误。 线程'tokio-runtime-worker'在'调用Result::unwrap()一个Err值时惊慌失措:错误(“尾随字符”,行:2,列:1)',src\bin\simple_server.rs:79:71

当我尝试直接对 json 字符串进行消毒时,不会出现此错误。它仅在我通过网络发送数据时发生。

0 投票
1 回答
130 浏览

python - 将HashMap的HashMap导出到Python

我有一个用 Rust 编写的文本解析器,并希望使用pyo3.

解析器返回 a HashMapwithin aHashMap并且 inner 的值HashMap是 type serde_json::Value。当我尝试将其作为 a 返回时,PyObject我收到一个我无法解决的错误。

这是我的问题的一个最小示例:

运行这会导致错误

目标是从 Python 调用这个函数,它返回dict如下:


编辑:实施的解决方案

(基于@orlp 的回答)

0 投票
0 回答
97 浏览

json - 如何使用 serde_json 将任意 JSON 反序列化为原始字节的类似值的对象?

我正在编写一个库来将 JSON 的子集反序列化为预定义的 Python 类型。

我想将任意 JSON 反序列化为一个像 serde-json 一样嘎嘎作响的对象Value。但是,我不希望它反序列化为' Strings、Number's 和Bool类型转换)将字节字符串解析为正确的任意 Python 类型。像这样的东西:

这将需要编写很多特征,以便它的行为类似于Value,而且我什至不确定它是否会忽略反序列化结构部分并将所有内容放入RawValue.

最干净的方法是什么?

0 投票
1 回答
59 浏览

rust - 以索引为键的 serde_json 展平对象

我有一些来自我想输入的外部 API 的 json。数据的形状如下:

根据运行的查询,在汇总字段下方返回未知数量的索引对象。这些对象具有相同的形状,但与“摘要”对象的形状不同。我想使用 serde_json 将此响应键入如下:

是否可以使用 serde 宏来做到这一点?是否有一个“所有其他领域”我可以扁平化为 vec 的包罗万象?

0 投票
1 回答
107 浏览

go - 为什么 Go 和 Rust 序列化的结果不一致?

我想要的结果如下,但Rust的结果是另一个。

golang 示例:

去结果:

生锈样品:

生锈结果

0 投票
2 回答
55 浏览

json - 以不同格式反序列化 JSON - Serde_JSON

我正在尝试从 Rust 中的文件读取 JSON,该文件具有以下维度:

我想将每个单词及其描述存储在一个向量中(这是一个刽子手游戏)。如果文件格式如下,我可以读取文件:

我使用以下代码执行此操作:

但是,我试图弄清楚如何保留 JSON 文件的原始格式,而不将其转换为第二个 JSON 示例中的单词和描述。

有没有办法使用现有的 JSON 格式或者我需要重新格式化它?

0 投票
1 回答
88 浏览

json - 实现 DeserializeOwned 的泛型类型

下面是一个不起作用的代码示例:

错误如下:cannot satisfy 'T: Deserialize<'de>

所以我补充说:

现在代码可以编译,但是尽管使用了 Option 类型,但缺少的“info”对象some_model_2会导致错误:

thread 'main' panicked at 'called 'Result::unwrap()' on an 'Err' value: Error("missing field 'info'", line: 0, column: 0)', src\main.rs:34:6

我的最后一个解决方案是使用自定义函数对info字段进行反序列化:

这种变化没有帮助,同样的恐慌错误仍然存​​在。该ok_or_none函数甚至没有被调用。

以下是我的依赖项:

我不知道我还能做些什么来完成这项工作。

预先感谢您的帮助!

0 投票
1 回答
52 浏览

rust - 如何获取 serde SeqAccess 的内部序列的 SeqAccess 类型?

我正在编写一个库来解析如下所示的 json 数据:

即我有一个带有列表列表的键,其中内部列表可以包含不同的数据类型,但每个内部列表具有相同的类型序列。内部列表的类型序列可以针对不同的 json 模式而改变,但会提前知道。

所需的输出看起来像:( vec![vec![1,2], vec!["a", "b"]] 将数据包装在针对不同 dtype 的一些适当的枚举中)。

我开始实现DeserializeSeedfor Vec<DataTypes>,下面是一些类似的伪代码。

我的问题是我似乎找不到为内部列表获取 SeqAccess 的方法,我不想将它们反序列化为类似的东西,Vec<serde_json::Value>因为我不想分配额外的向量。