MST

星途 面试题库

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

在Rust中,给定一个简单的结构体`struct Point { x: i32, y: i32; }`,请使用`serde`库将其序列化为JSON格式的字符串。要求写出完整的代码,包括引入必要的库、结构体定义以及序列化操作。
17.3万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

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

#[derive(Serialize)]
struct Point {
    x: i32,
    y: i32,
}

fn main() {
    let point = Point { x: 10, y: 20 };
    let serialized = serde_json::to_string(&point).expect("Serialization failed");
    println!("{}", serialized);
}
  1. 引入库:使用serde库的Serialize trait 来标记结构体,使其可序列化,同时引入serde_json库来处理JSON序列化。
  2. 结构体定义:使用#[derive(Serialize)]宏为Point结构体自动实现Serialize trait。
  3. 序列化操作:在main函数中,创建Point结构体实例,然后使用serde_json::to_string方法将其序列化为JSON格式的字符串,并打印输出。如果序列化失败,程序将调用expect方法导致panic并输出错误信息。