如何从带有JSON的请求的Response序列化为类型化的结构?

问题描述

我不知道如何将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!")
    }
}

解决方法

您可以找到an example。这样的事情可能会起作用:

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