如何从请求';将JSON响应转换为类型化结构?

如何从请求';将JSON响应转换为类型化结构?,json,rust,serde,Json,Rust,Serde,我不明白如何将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&quo

我不明白如何将
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!")
    }
}
你可以找到。类似的方法可能会奏效:

let p: MyStruct = serde_json::from_str(data).unwrap();

serde_json::from_reader
将反序列化(json字符串->结构)。如果要序列化(Rust struct->JSON string),请尝试
serde_JSON::to_string
。板条箱
请求
已三年未更新。考虑使用,然后按照它的文档来检索完整的响应体。很难回答你的问题,因为它不包括A。我们无法判断代码中存在哪些板条箱(及其版本)。如果您试图在一个全新的货运项目中重现您的错误,那么我们将更容易帮助您,然后您的问题将包括附加信息。您可以使用以下方法减少在此处发布的原始代码。谢谢像这样的东西应该会起作用——提供一个您确信有效的测试示例更有用。