zoukankan      html  css  js  c++  java
  • JSON数据的解析和生成(Rust)

    课题

    • 将 JSON 字符串反序列化为 Persons 类(结构)的对象 ,然后将这个对象序列化为 JSON 字符串。
    • Persons 类(结构)包含一个字段:Person 类(结构)的 persons 数组。
    • Person 类(结构)包含两个字段:字符串类型的 name 字段和整数类型的 age 字段。

    Rust

    use serde::{Deserialize, Serialize};
    
    #[derive(Serialize, Deserialize, Debug)]
    struct Persons {
        // #[serde(rename(serialize = "persons", deserialize = "persons"))]
        persons: Vec<Person>,
    }
    
    #[derive(Serialize, Deserialize, Debug)]
    struct Person {
        // #[serde(rename(serialize = "name", deserialize = "name"))]
        name: String,
        // #[serde(rename(serialize = "age", deserialize = "age"))]
        age: i32,
    }
    
    fn main() -> Result<(), Box<dyn Error>> {
        let json_str = r#"{
            "persons" : [
                {
                    "name" : "Joe",
                    "age" : 12
                }
            ]
        }"#;
        let v: Persons = serde_json::from_str(&json_str)?;
        println!("{:?}", v);
        let json_str = serde_json::to_string(&v)?;
        println!("{}", json_str);
        let json_str = serde_json::to_string_pretty(&v)?;
        println!("{}", json_str);
    
        Ok(())
    }
    
    /*
    Persons { persons: [Person { name: "Joe", age: 12 }] }
    {"persons":[{"name":"Joe","age":12}]}
    {
      "persons": [
        {
          "name": "Joe",
          "age": 12
        }
      ]
    }
    */
    
  • 相关阅读:
    Alpha冲刺(1/4)
    团队项目用户验收评审
    beta冲刺 第四天
    beta冲刺 第三天
    Beta冲刺 第二天
    Beta冲刺 第一天
    实验十一 团队作业7---团队项目设计完善&编码测试
    Alpha冲刺四
    Alpha冲刺
    《Miracle_House》团队项目系统设计改进
  • 原文地址:https://www.cnblogs.com/zwvista/p/12787576.html
Copyright © 2011-2022 走看看