
Serde & Serialization
serde traits, derive macros, JSON/YAML/TOML, (de)serialization tùy chỉnh, lifetimes với Cow, hiệu năng
1Vai trò chính của crate serde trong Rust là gì?
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.
2Cú pháp đúng để bật serialization tự động trên một struct với serde là gì?
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}.
3Nên dùng hàm nào để chuyển đổi một struct Rust thành chuỗi JSON với serde_json?
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().
Làm thế nào để deserialize một chuỗi JSON thành struct Rust với serde_json?
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
Các chủ đề phỏng vấn Rust khác
Cơ bản về Rust
Ownership & Borrowing
Structs & Enums
Xử lý lỗi
Collections
Modules & Packages
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macro
Unsafe Rust
Trait nâng cao
Lifetime Nâng Cao
Type System
Tokio & Async I/O
Tối ưu hóa Hiệu suất
Memory Management
Web Frameworks
Database Integration
Design Pattern trong Rust
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í