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

rust - 将 JSON 字符串或字符串数​​组反序列化为 Vec

我正在编写一个与 JSON Web API 接口的板条箱。一个端点通常返回表单的响应{ "key": ["value1", "value2"] },但有时键只有一个值,并且端点返回{ "key": "value" }而不是{ "key": ["value"] }

我想为此写一些通用的东西,我可以#[serde(deserialize_with)]像这样使用:

我怎样才能写一个deserialize_string_or_seq_string能够做到这一点?

0 投票
2 回答
2905 浏览

rust - 创建返回实现 serde::Deserialize 的值的函数时的生命周期错误

我正在使用 serde 和 serde_json 1.0 来解码来自 base64 字符串的数据:

当我编译时,我得到了这个:

检查 serde 文档,Deserialize定义为:

所以我添加了生命周期:

然后编译器告诉我:

我只知道 Rust 生命周期的基础知识,所以我对'dein非常困惑trait Deserialize

如何修复此类函数中的生命周期错误?我每晚使用 Rust 1.18.0 (452bf0852 2017-04-19)

0 投票
1 回答
228 浏览

rust - 函数局部变量的寿命不够长

我正在尝试围绕 serde_json 和 Rocket 编写一个包装器,FromData以强类型化我与服务器交换的一些 JSON。

我无法编译以下代码:

编译器的错误:

因为data_from_reader, valueand unwraped_valuecome fromdata我认为编译器可以推断出它具有相同的生命周期,但显然情况并非如此。有什么办法可以说明或做一些在这种情况下可行的事情吗?

serde_json::from_reader

rocket::data::Data::open

rocket::data::DataStream::take

0 投票
1 回答
2129 浏览

rust - 有没有更简单的方法在反序列化时转换类型?

使用serde_jsonString ,我有需要转换为浮点数的带有 s 的 JSON 对象。我偶然发现了一个自定义反序列化器解决方案,但它似乎是一个 hack。 这是下面代码的工作游乐场示例。

上面的代码按照你的预期编译和运行,输出两个浮点数。

我正在尝试了解反序列化器解决方案的工作原理,但我想知道我是否朝着正确的方向前进,或者是否有更好的方法来做到这一点。

0 投票
1 回答
1104 浏览

json - 使用 serde_json 解析对象内部的对象

我被卡住了,下面是我收到的 JSON:

我对我的结构应该如何使用serde_json板条箱解析属性感到有点困惑。以下是我目前拥有的:

我收到一条错误消息:

线程'main'在'调用Result::unwrap()一个Err 值:ErrorImpl { code:Message(“missing field assest”),line:0,column:0}'时惊慌失措,src/libcore/result.rs:860:4

0 投票
1 回答
580 浏览

rust - 将 JSON 数组反序列化为元组并为其赋予类型标签

我的 JSON 看起来像:

数组中的对象当然有其他字段range,但这没关系。

是否可以将它们反序列化为具有两种幻像类型的元组,以自动指示开始和结束是包含还是不包含?

这也可以通过将数字反序列化为某种具有幻像类型的元组来解决。

这不起作用,因为serde_json似乎对 size 数组一无所知PhantomData并期望数组4,这可以通过Deserializer手动实现来解决,这正是我想要避免的事情。

我没有寄予厚望,但也许这可以做到,我不知道。

0 投票
1 回答
3185 浏览

rust - 如何更改 Serde 的默认实现以返回空对象而不是 null?

我正在开发一个 API 包装器,但在反序列化空 JSON 对象时遇到了一些麻烦。

API 返回此 JSON 对象。注意空对象entities

这是我等效的message属性结构(已编辑):

Serde 的默认设置是反序列化Options,即None, 和::serde_json::Value::Null.

0 投票
1 回答
204 浏览

rust - 如果变量的值为空,则跳过其序列化?(自定义序列化)

Token如果变量的值为空,我想跳过变量的序列化。

0 投票
3 回答
2837 浏览

json - 如何将两个 JSON 对象与 Rust 合并?

我有两个 JSON 文件:

JSON 1

JSON 2

我想将#2 合并到#1 中,其中#2 覆盖#1,产生以下输出:

我检查了执行此操作的 crate json-patch,但它不能针对稳定的 Rust 进行编译。是否可以使用serde_json和 stable Rust之类的东西做类似的事情?

0 投票
1 回答
969 浏览

rust - 尝试使用 serde_json 从 curl 解析 JSON 时类型不匹配

我已经从一个用于打开 WIFI 的 API 获得 JSON 输出,我想将其放入数据库中。数据就是这种形式

我已经通过以下方式获得了信息curl

我尝试使用 serde_json:

我总是得到一个错误:

你能给我一个如何处理数据以将其输入数据库的示例吗?