Rust

Serde & Serialization

serde traits, derive macros, JSON/YAML/TOML, (de)serialization tùy chỉnh, lifetimes với Cow, hiệu năng

20 câu hỏi phỏng vấn·
Mid-Level
1

Vai trò chính của crate serde trong Rust là gì?

Câu trả lời

Serde là một framework serialization và deserialization tổng quát cho Rust. Tên của nó bắt nguồn từ "SERialize DEserialize". Nó cho phép chuyển đổi các cấu trúc dữ liệu Rust sang và từ nhiều định dạng dữ liệu khác nhau (JSON, YAML, TOML, v.v.) một cách hiệu quả và type-safe. Serde sử dụng hệ thống trait của Rust để cung cấp một abstraction không tốn chi phí runtime.

2

Cú pháp đúng để bật serialization tự động trên một struct với serde là gì?

Câu trả lời

Thuộc tính #[derive(Serialize, Deserialize)] tự động sinh ra các implementation của trait Serialize và Deserialize cho một struct. Procedural macro này phân tích cấu trúc field và sinh mã cần thiết tại thời điểm biên dịch. Bạn cần import các trait từ serde bằng use serde::{Serialize, Deserialize}.

3

Nên dùng hàm nào để chuyển đổi một struct Rust thành chuỗi JSON với serde_json?

Câu trả lời

Hàm serde_json::to_string() chuyển đổi một giá trị implement Serialize thành chuỗi JSON. Nó trả về Result<String, Error> vì serialization có thể thất bại trong một số trường hợp. Để có output được định dạng với thụt lề, hãy dùng serde_json::to_string_pretty(). Để ghi trực tiếp vào một Writer, hãy dùng serde_json::to_writer().

4

Làm thế nào để deserialize một chuỗi JSON thành struct Rust với serde_json?

5

Nên dùng thuộc tính serde nào để đổi tên một field trong quá trình serialization?

+17 câu hỏi phỏng vấn

Nắm vững Rust cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí