Rust:
การทำงานกับ JSON

วิธีการ:

เพื่อทำงานกับ JSON ใน Rust ต้องใช้ crate serde ร่วมกับ serde_json เพื่อการสร้างและการแปลงข้อมูล ให้แน่ใจว่าคุณได้รวมเหล่านี้ในไฟล์ Cargo.toml ของคุณ:

[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

ตัวอย่างที่ 1: การแปลงข้อมูล JSON เป็น Struct ของ Rust

กำหนดโครงสร้าง Struct ของ Rust และใช้ derive macros สำหรับ Deserialize และ Serialize:

use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize)]
struct User {
    id: u32,
    name: String,
    email: String,
}

fn main() {
    let json_data = r#"
        {
            "id": 1,
            "name": "Jane Doe",
            "email": "[email protected]"
        }
    "#;

    let user: User = serde_json::from_str(json_data).unwrap();

    println!("รหัสผู้ใช้: {}", user.id);
    println!("ชื่อผู้ใช้: {}", user.name);
    println!("อีเมลผู้ใช้: {}", user.email);
}

ผลลัพธ์:

รหัสผู้ใช้: 1
ชื่อผู้ใช้: Jane Doe
อีเมลผู้ใช้: [email protected]

ตัวอย่างที่ 2: การสร้าง Struct ของ Rust เป็นข้อมูล JSON

ใช้โครงสร้าง Struct User เดิม:

let user = User {
    id: 1,
    name: "Jane Doe".to_string(),
    email: "[email protected]".to_string(),
};

let json_data = serde_json::to_string(&user).unwrap();

println!("{}", json_data);

ผลลัพธ์:

{"id":1,"name":"Jane Doe","email":"[email protected]"}

ตัวอย่างเหล่านี้แสดงขั้นตอนพื้นฐานของการแปลงข้อมูล JSON เป็นโครงสร้างของ Rust และการสร้างโครงสร้างของ Rust กลับเป็นสตริง JSON Serde ให้เครื่องมือที่หลากหลายสำหรับการทำงานกับ JSON รวมถึงการจัดการกับฟิลด์ที่ไม่บังคับ การซ้อนโครงสร้างที่ซับซ้อน และประเภทข้อมูลที่ JSON ไม่รองรับโดยตรง