MST
星途 面试题库

面试题:Rust中serde序列化与反序列化基础使用

在Rust中,假设你有一个结构体`Person`,包含`name`(字符串类型)和`age`(整数类型)字段。请使用`serde`库将`Person`结构体序列化为JSON格式的字符串,并展示如何从这个JSON字符串反序列化回`Person`结构体。需要写出完整的代码示例,包括必要的`Cargo.toml`依赖配置。
42.4万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试

Cargo.toml

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

main.rs

use serde::{Deserialize, Serialize};

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

fn main() {
    // 创建一个Person实例
    let person = Person {
        name: "Alice".to_string(),
        age: 30,
    };

    // 序列化为JSON字符串
    let serialized = serde_json::to_string(&person).expect("Serialization failed");
    println!("Serialized: {}", serialized);

    // 从JSON字符串反序列化
    let deserialized: Person = serde_json::from_str(&serialized).expect("Deserialization failed");
    println!("Deserialized: name={}, age={}", deserialized.name, deserialized.age);
}