【发布时间】:2021-11-03 06:30:04
【问题描述】:
我正在尝试在 Rust 中使用 serde_json 解析一段 json 字符串。我想使用以下语法匹配解析的结果:
match serde_json::from_str(msg.to_text().unwrap()) {
Ok(result) => {
println!("Parsed: {}", response.text);
}
Err(error) => {
println!("Failed to parse: {}", error);
}
}
但是编译器向我抱怨他不知道result 的类型,当然,他是对的。但是我怎么能告诉他result 的类型呢?我尝试了以下代码,但它也没有工作。所以我想在match arm中表达变量的类型。
match serde_json::from_str(msg.to_text().unwrap()) {
Ok(result: Response) => {
println!("Parsed: {}", response.text);
}
Err(error) => {
println!("Failed to parse: {}, {}", error, msg.to_text.unwrap());
}
}
【问题讨论】:
-
实际应用中一般不需要。
-
@Stargateur 你是什么意思?只使用
unwrap? -
没有明确提示,类型推断将无法工作
标签: rust serde-json