我是 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}\nRun 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}\nRun Code Online (Sandbox Code Playgroud)\n\n或者
\n\n{\n \xe2\x80\x9cfoo\xe2\x80\x9d: \xe2\x80\x9cbar\xe2\x80\x9d,\n}\nRun 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}\nRun 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}\nRun Code Online (Sandbox Code Playgroud)\n\n或者
\n\nstruct foo {\n pub foo: String,\n #[serde(skip_serializing_if = "Option::is_none")]\n …Run Code Online (Sandbox Code Playgroud) 我正在实施 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)来做到这一点吗?
谢谢