小编Ada*_*cny的帖子

如何在 Rust 中反序列化(使用 serde)可选 json 参数,可以是字符串或字符串数​​组

我是 Rust 新手,我正在尝试使用 serde 库反序列化 JSON 数据。\n我有以下 JSON 结构:

\n\n
{\n    \xe2\x80\x9cfoo\xe2\x80\x9d: \xe2\x80\x9cbar\xe2\x80\x9d,\n    \xe2\x80\x9cspeech\xe2\x80\x9d: \xe2\x80\x9csomething\xe2\x80\x9d\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者

\n\n
{\n    \xe2\x80\x9cfoo\xe2\x80\x9d: \xe2\x80\x9cbar\xe2\x80\x9d,\n    \xe2\x80\x9cspeech\xe2\x80\x9d: [\xe2\x80\x9csomething\xe2\x80\x9d, \xe2\x80\x9csomething else\xe2\x80\x9d]\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者

\n\n
{\n    \xe2\x80\x9cfoo\xe2\x80\x9d: \xe2\x80\x9cbar\xe2\x80\x9d,\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

语音是可选的,它可以是字符串或字符串数​​组。

\n\n

我可以使用以下方法处理反序列化字符串/字符串数组:

\n\n
#[derive(Debug, Serialize, Deserialize)]\n   struct foo {\n   pub foo: String,\n   #[serde(deserialize_with = "deserialize_message_speech")]\n   speech: Vec<String>\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我还可以使用以下方法处理反序列化可选字符串/字符串数组属性:

\n\n
#[derive(Debug, Serialize, Deserialize)]\nstruct foo {\n   pub foo: String,\n   #[serde(skip_serializing_if = "Option::is_none")]\n   speech: Option<Vec<String>>\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者

\n\n
struct foo {\n   pub foo: String,\n   #[serde(skip_serializing_if = "Option::is_none")]\n …
Run Code Online (Sandbox Code Playgroud)

rust serde

6
推荐指数
1
解决办法
8686
查看次数

使用 npm twilio 包时如何在 WhatsApp 中实现输入指示器

我正在实施 twilio/whatsapp webhook,以便处理发送到 twilio 支持 Whatsapp 的号码的消息。该实现是在 Node.JS 中使用 npm twilio 库完成的。我正在利用 twilio.twiml.MessagingResponse 接口同步发送响应(作为对 webook 请求的响应)。当消息发送到 webhook 时,我们调用 NLP 进行处理,然后将 NLP 的响应作为 twilio.twiml.MessagingResponse 转发回 webhook。通常 NLP 处理需要几秒钟,我想以某种方式实现打字指示器以改善用户体验。您能建议如何使用 npm twilio 库(https://www.twilio.com/docs/libraries/node)来做到这一点吗?

谢谢

twilio twilio-api

5
推荐指数
1
解决办法
2994
查看次数

标签 统计

rust ×1

serde ×1

twilio ×1

twilio-api ×1