如何在Rust中使用reqwest get反序列化任意的json结构?

0mkxixxg  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(165)

我是一个全新的人,我试图找出如何从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(())
}

因此,在本例中,目标结构--即以字符串作为键、以字符串作为值的HashMap对象--显然是已知的。
但是,如果我不知道在请求端点上接收到的结构是什么样子的呢?

6yt4nkrj

6yt4nkrj1#

您可以使用serde_json::Value


# [tokio::main]

async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let resp = reqwest::get("https://httpbin.org/ip")
        .await?
        .json::<serde_json::Value>()
        .await?;
    println!("{:#?}", resp);
    Ok(())
}

您必须将serde_json添加到Cargo.toml文件中。

[dependencies]
...
serde_json = "1"

相关问题