MST

星途 面试题库

面试题:Rust中serde库如何实现结构体到JSON的序列化

在Rust中,使用serde库将如下结构体 `struct User { name: String, age: u32 }` 序列化为JSON格式字符串,写出完整代码,并解释使用到的主要属性和方法。
34.4万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
use serde::{Serialize, Deserialize};
use serde_json;

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

fn main() {
    let user = User {
        name: "Alice".to_string(),
        age: 30,
    };

    let serialized = serde_json::to_string(&user).expect("Serialization failed");
    println!("Serialized JSON: {}", serialized);
}

主要属性和方法解释:

  1. #[derive(Serialize, Deserialize)]:这是一个Rust的派生宏,它会自动为 User 结构体实现 SerializeDeserialize 特质(trait)。Serialize 特质用于将结构体序列化为各种格式(这里是JSON),Deserialize 特质用于从各种格式反序列化回结构体。
  2. serde_json::to_string(&user):这是 serde_json 库提供的方法,它将实现了 Serialize 特质的 user 实例序列化为JSON格式的字符串。.expect("Serialization failed") 用于在序列化失败时打印错误信息。如果序列化成功,它返回一个 String 类型的JSON字符串。