Trình tạo Rust từ JSON

Đầu vào: JSON

Đang tải trình soạn thảo…

Rust đã Tạo

Configuration

Nhập dữ liệu JSON để tạo struct Rust

Struct an toàn bộ nhớ với ownership

Cách chuyển đổi JSON sang Rust – hướng dẫn từng bước

Sử dụng trình tạo JSON to Rust này để tạo cấu trúc Rust từ các mẫu JSON cho các dịch vụ và công cụ CLI có hỗ trợ serde.

  1. Bước 1 – Dán mẫu JSON

    • Dán đối tượng hoặc mảng JSON đại diện vào trình soạn thảo bên trái.
    • Bao gồm các đối tượng lồng nhau, mảng và các trường có thể rỗng để các kiểu được suy ra chính xác.
    • Sử dụng Import để tải JSON từ tệp, URL hoặc dữ liệu mẫu.
  2. Bước 2 – Chọn tùy chọn cấu trúc Rust

    • Đặt gốc Struct Name (ví dụ Root).
    • Quyết định cách xử lý các trường tùy chọn (Option<T>) và các giá trị không xác định (serde_json::Value).
    • Xác nhận các thuộc tính đặt tên và serde để các khóa JSON ánh xạ chính xác.
  3. Bước 3 – Xem lại mã được tạo

    • Kiểm tra tên trường, loại và cách mô hình hóa mảng/đối tượng.
    • Điều chỉnh các tùy chọn như Root Type Name, xử lý null và khung nếu có.
    • Nếu một trường được suy ra không chính xác, hãy điều chỉnh JSON mẫu của bạn và tạo lại.
  4. Bước 4 – Sử dụng cấu trúc với serde

    • Thêm serdeserde_json vào phần phụ thuộc của bạn và bật macro dẫn xuất.
    • Giải tuần tự hóa JSON vào cấu trúc gốc của bạn bằng cách sử dụng serde_json::from_str.
    • Thêm xác nhận sau quá trình khử lưu huỳnh khi bạn cần sự đảm bảo mạnh mẽ hơn.
  5. Bước 5 – Sao chép hoặc tải xuống

    • Sao chép đầu ra vào dự án của bạn hoặc tải xuống dưới dạng tệp.
    • Chạy trình định dạng/linter để phù hợp với kiểu mã của bạn.
    • Thêm thư viện phân tích cú pháp/tuần tự hóa JSON nếu ngôn ngữ của bạn yêu cầu chúng.

Mẹo nhanh

  • Sử dụng Option<T> cho các trường có thể bị thiếu hoặc rỗng.
  • Chỉ ưu tiên các loại chrono khi định dạng dấu thời gian của bạn ổn định.
  • Giữ cấu trúc DTO tách biệt với các loại miền nội bộ để linh hoạt.
Đầu ra ví dụ (đơn giản hóa)
// đầu vào JSON
{
  "id": 123,
  "name": "Maeve Winters",
  "email": "[email protected]",
  "active": true,
  "roles": ["admin", "editor"],
  "metadata": { "plan": "pro" },
  "createdAt": "2024-03-01T10:15:00Z",
  "score": 99.5,
  "notes": null
}

// Generated Rust structs (simplified)
use serde::{Deserialize, Serialize};

#[derive(Debug, Serialize, Deserialize)]
pub struct Metadata {
  pub plan: String,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct Root {
  pub id: i64,
  pub name: String,
  pub email: Option<String>,
  pub active: bool,
  pub roles: Vec<String>,
  pub metadata: Metadata,
  pub created_at: String,
  pub score: f64,
  pub notes: serde_json::Value,
}

Các công cụ JSON & Rust liên quan

Khám phá thêm các công cụ JSON và lược đồ hoạt động hiệu quả cùng với trình tạo JSON to Rust này.

Câu hỏi thường gặp

Những tính năng Rust nào được hỗ trợ?

Trình tạo tạo struct Rust với ownership phù hợp, hỗ trợ Serde serialization/deserialization và tuân theo quy ước đặt tên Rust với đảm bảo an toàn bộ nhớ.

Tôi có thể tạo struct tương thích Serde không?

Có! Chọn 'Serde' để tạo struct với #[derive(Serialize, Deserialize)] cho JSON serialization tự động bằng crate serde.

Xử lý Option hoạt động như thế nào?

Trình tạo Rust dùng Option<T> cho trường nullable theo mặc định để đảm bảo an toàn bộ nhớ và xử lý null rõ ràng theo mô hình ownership của Rust.

Borrowing và lifetimes thì sao?

Struct tạo ra dùng kiểu sở hữu (String thay vì &str) để tránh phức tạp lifetime, giúp dễ dùng hơn mà vẫn giữ đảm bảo an toàn của Rust.

Generator JSON sang Rust | JSONSwiss