serde序列化反序列化

导入Crate

serde_json = {version = "1.0"}
serde = {version = "*", features = ["derive"]}

代码中使用

extern crate serde;
extern crate serde_json;

use serde::{Serialize, Deserialize};

#[derive(Serialize, Deserialize)]
struct Person{
    name: String,
    age: u8,
    phones: Vec,
}

//从json中反序列化对象
    let data = r#"
    {
        "name": "John Doe",
        "age": 43,
        "phones": [
            "18800010002",
            "18800010003"
        ]
    }"#;
    let p: Person = serde_json::from_str(data)?;
    println!("{}", p.name);
//序列化对象为json
    let json = serde_json::to_string(&p)?;
    println!("序列化结果:{}", json);
//硬编码json对象
    let full_name = "henreash";
    let age_last_year = 42;

    let henreash = json!({
        "name": full_name,
        "age": age_last_year + 1,
        "phone": [
            "+86-10000",
            "+86-10001",
        ]
    });

    let json = henreash.to_string();
    println!("{}", json);

你可能感兴趣的:(rust,rust)