Rust:
Làm việc với JSON
Làm thế nào:
Trong Rust, serde
và serde_json
là những thư viện đi đầu cho công việc với JSON. Dưới đây là cách sử dụng chúng:
Đầu tiên, thêm các phụ thuộc vào Cargo.toml
:
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
Sau đó, nhập các thư viện và định nghĩa một struct để đại diện cho dữ liệu của bạn:
extern crate serde;
extern crate serde_json;
#[macro_use]
extern crate serde_derive;
#[derive(Serialize, Deserialize, Debug)]
struct User {
id: u64,
name: String,
email: String,
}
fn main() {
// Serialize
let user = User {
id: 1,
name: "Jane Doe".to_string(),
email: "[email protected]".to_string(),
};
let j = serde_json::to_string(&user).unwrap();
println!("{}", j); // {"id":1,"name":"Jane Doe","email":"[email protected]"}
// Deserialize
let e: User = serde_json::from_str(&j).unwrap();
println!("{:?}", e); // User { id: 1, name: "Jane Doe", email: "[email protected]" }
}
Đi sâu hơn:
Hệ sinh thái thư viện serde
là giải pháp chính thức của Rust cho việc serialization kể từ khi nó được phát hành vào năm 2015. Nó hỗ trợ nhiều định dạng ngoài JSON. Thay thế, bạn có thể gặp json-rust
hoặc simd-json
, chúng cung cấp các sự đánh đổi về hiệu suất khác nhau. Một chi tiết thực hiện quan trọng cần hiểu là việc phân tích cú pháp serde
yêu cầu cấu trúc dữ liệu phải được biết trước tại thời điểm biên dịch, điều này không đúng với các ngôn ngữ động hơn như JavaScript.
Xem thêm:
- Tài liệu chính thức của Serde cung cấp một hướng dẫn toàn diện: Tài liệu Serde
- Chi tiết về thư viện
serde_json
: Thư viện serde_json - Tìm hiểu thêm về chính JSON: Giới thiệu về JSON
- Đối với lập trình bất đồng bộ với JSON,
tokio
vàasync-std
thường được sử dụng cùng vớiserde_json
.