rust将json字符串直接转为map对象或者hashmap对象

有些时候我们还真的不清楚返回的json数据里面到底有哪些数据,数据类型是什么等,这个时候就可以使用批处理的方式将json字符串转为一个对象,然后通过这个对象的get方法来获取json里面的数据。

rust 复制代码
    pub async fn test_json(&self) {
        let json_str = r#"
            {
                "name": "John",
                "age": 30,
                "city": "New York",
                "info": {
                    "work": "code",
                    "phone": 15670339888,
                    "password": "123456"
                }
            }
        "#;
        let map_obj: Value = serde_json::from_str(json_str).expect("Invalid JSON");
        let name = map_obj.get("name");
        println!("name value is:{name:?}");
        let info = map_obj.get("info");
        let mut phone;
        if info.is_some() {
            phone = info.expect("").get("phone");
            println!("phone number is: {phone:?}");
        }
    }

输出结果:

如果你使用的是reqwest请求库获取到的响应数据,那么你可以直接使用 response.json()方法来解析json数据,并将返回值声明为Value类型,得到的结果就是hashmap对象了:

得到的结果数据:

相关推荐
番茄灭世神3 小时前
Rust学习笔记第2篇
rust·编程语言
shimly1234568 小时前
(done) 速通 rustlings(20) 错误处理1 --- 不涉及Traits
rust
shimly1234568 小时前
(done) 速通 rustlings(19) Option
rust
@atweiwei8 小时前
rust所有权机制详解
开发语言·数据结构·后端·rust·内存·所有权
shimly1234569 小时前
(done) 速通 rustlings(24) 错误处理2 --- 涉及Traits
rust
shimly1234569 小时前
(done) 速通 rustlings(23) 特性 Traits
rust
shimly12345610 小时前
(done) 速通 rustlings(17) 哈希表
rust
shimly12345611 小时前
(done) 速通 rustlings(15) 字符串
rust
上海合宙LuatOS12 小时前
LuatOS核心库API——【json 】json 生成和解析库
java·前端·网络·单片机·嵌入式硬件·物联网·json
shimly12345612 小时前
(done) 速通 rustlings(22) 泛型
rust