Rust:
Làm việc với JSON

Làm thế nào:

Trong Rust, serdeserde_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, tokioasync-std thường được sử dụng cùng với serde_json.