首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Rust中使用reqwest get对任意json结构进行反序列化?

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

Stack Overflow用户
提问于 2020-09-14 00:20:24
回答 1查看 1.3K关注 0票数 7

我对rust完全陌生,我正在尝试了解如何从URL端点加载和反序列化任意JSON结构。

reqwest自述文件上的相应示例如下所示:

代码语言:javascript
复制
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对象-显然是已知的。

但是,如果我不知道在请求端点上接收到的结构是什么样子呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-14 00:25:16

您可以使用serde_json::Value

代码语言:javascript
复制
#[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

代码语言:javascript
复制
[dependencies]
...
serde_json = "1"
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63872942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档