如何使用reqwest-get-in-Rust对任意json结构进行反序列化?

如何使用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")

我对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")
        .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"