【发布时间】:2020-09-22 16:20:32
【问题描述】:
我不明白如何将 requests::Response 转换为 serde JSON 对象。我试过这个:
extern crate requests;
extern crate serde;
#[macro_use]
extern crate serde_derive;
extern crate serde_json;
fn get_json() -> requests::Response {
let response = requests::get("Fancy URL").unwrap();
return response;
}
#[derive(Serialize, Deserialize)]
struct MyStruct {
iso: String,
number: String,
name: String,
}
fn main() {
let data = get_json();
let res = serde_json::from_reader(data);
if res.is_ok() {
let p: MyStruct = res.unwrap();
println!("The name is {}", p.name);
} else {
println!("Could not parse JSON!")
}
}
【问题讨论】:
-
crate
requests3 年没有更新了。考虑改用reqwest,然后按照其文档检索完整的响应正文。 -
很难回答您的问题,因为它不包含minimal reproducible example。我们无法分辨代码中存在哪些 crate(及其版本)。如果您尝试在一个全新的 Cargo 项目中重现您的错误,我们会更轻松地为您提供帮助,然后 edit 您的问题将包含附加信息。您可以使用Rust-specific MRE tips 来减少您在此处发布的原始代码。谢谢!