我对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(())
}因此,在这个示例中,目标结构-即以字符串作为键和字符串作为值的HashMap对象-显然是已知的。
但是,如果我不知道在请求端点上接收到的结构是什么样子呢?
发布于 2020-09-14 00:25:16
您可以使用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(())
}您必须在Cargo.toml文件中添加serde_json。
[dependencies]
...
serde_json = "1"https://stackoverflow.com/questions/63872942
复制相似问题