Trình tạo Go từ JSON

Đầu vào: JSON

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

Go đã Tạo

Configuration

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

Struct với tên trường phù hợp và JSON tags

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

Sử dụng trình tạo JSON to Go này để tạo cấu trúc Go bằng thẻ JSON từ các mẫu JSON cho API và dịch vụ.

  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 Go

    • Đặt gốc Struct Name (ví dụ Root).
    • Quyết định cách xử lý các trường tùy chọn (*string, omitempty hoặc loại tùy chỉnh).
    • Xác nhận các thẻ JSON và đặt tên để các khóa ánh xạ chính xác (ví dụ: json:"createdAt").
  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 trong Go

    • Dán cấu trúc vào gói của bạn và chạy gofmt.
    • Sắp xếp thứ tự với encoding/json thành loại gốc.
    • Thêm xác thực (ví dụ: các trường bắt buộc) tại ranh giới API.
  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 con trỏ cho các trường rỗng khi bạn cần phân biệt giữa thiếu và trống.
  • Chỉ ưu tiên time.Time khi bạn kiểm soát định dạng dấu thời gian.
  • Giữ cấu trúc DTO tách biệt khỏi các mô hình miền nội bộ khi cần.
Đầ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 Go structs (simplified)
type Metadata struct {
  Plan string `json:"plan"`
}

type Root struct {
  ID        int       `json:"id"`
  Name      string    `json:"name"`
  Email     *string   `json:"email"`
  Active    bool      `json:"active"`
  Roles     []string  `json:"roles"`
  Metadata  Metadata  `json:"metadata"`
  CreatedAt string    `json:"createdAt"`
  Score     float64   `json:"score"`
  Notes     any       `json:"notes"`
}

Các công cụ JSON & Go 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 Go này.

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

Hỗ trợ những tính năng Go nào?

Trình tạo tạo struct Go với tên trường phù hợp, JSON tags cho marshaling/unmarshaling, và kiểu dữ liệu Go phù hợp theo quy ước đặt tên của Go.

JSON tags được xử lý thế nào?

Trình tạo tự động thêm JSON tags vào các trường struct để serialize chính xác. Bạn cũng có thể bật YAML hoặc XML tags nếu cần hỗ trợ đa định dạng.

Tôi có thể tùy chỉnh tên package không?

Có! Bạn có thể chỉ định bất kỳ tên package nào trong tùy chọn. Mặc định là 'main' nhưng bạn có thể dùng 'models', 'types', v.v.

Quy ước đặt tên Go được xử lý như thế nào?

Trình tạo tự động chuyển tên trường JSON sang tên trường Go phù hợp (PascalCase cho trường exported) và vẫn giữ tên gốc trong JSON tags.

Generator JSON sang Go | JSONSwiss