如何从请求';将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。我们无法判断代码中存在哪些板条箱(及其版本)。如果您试图在一个全新的货运项目中重现您的错误,那么我们将更容易帮助您,然后您的问题将包括附加信息。您可以使用以下方法减少在此处发布的原始代码。谢谢像这样的东西应该会起作用——提供一个您确信有效的测试示例更有用。