如何使用reqwest-get-in-Rust对任意json结构进行反序列化?
我对rust完全是新手,我正在尝试找出如何从URL端点加载反序列化任意JSON结构 reqwest自述文件上的相应示例如下所示:如何使用reqwest-get-in-Rust对任意json结构进行反序列化?,json,rust,reqwest,Json,Rust,Reqwest,我对rust完全是新手,我正在尝试找出如何从URL端点加载反序列化任意JSON结构 reqwest自述文件上的相应示例如下所示: use std::collections::HashMap; #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { let resp = reqwest::get("https://httpbin.org/ip")
use std::collections::HashMap;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let resp = reqwest::get("https://httpbin.org/ip")
.await?
.json::<HashMap<String, String>>()
.await?;
println!("{:#?}", resp);
Ok(())
}
使用std::collections::HashMap;
#[tokio::main]
异步fn main()->结果{
让resp=reqwest::get(“https://httpbin.org/ip")
.等等?
.json::()
.等待?;
println!(“{:?}”,resp);
好(())
}
因此,在本例中,目标结构——即字符串作为键、字符串作为值的HashMap对象——显然是已知的
但是,如果我不知道在请求端点上接收到的结构是什么样的,那该怎么办呢?您可以使用
#[tokio::main]
异步fn main()->结果{
让resp=reqwest::get(“https://httpbin.org/ip")
.等等?
.json::()
.等待?;
println!(“{:?}”,resp);
好(())
}
您必须将serde_json
添加到Cargo.toml文件中
[dependencies]
...
serde_json = "1"