Trình chuyển JSON sang mã

Biến một mẫu JSON thành interface TypeScript, struct Go, struct serde Rust, schema Zod hoặc JSON Schema.

Đang tải công cụ…

Trình chuyển JSON sang mãDán một mẫu JSON tiêu biểu và lập tức nhận mã định kiểu chặt chẽ trong ngôn ngữ đích của bạn: interface TypeScript, struct Go với thẻ json, struct serde Rust, schema Zod hoặc JSON Schema draft-07. Các kiểu được suy ra trực tiếp từ dữ liệu - đối tượng lồng nhau trở thành kiểu có tên, mảng suy ra kiểu phần tử của nó, và các trường không xuất hiện trong mọi phần tử mảng được đánh dấu là tùy chọn. Mọi thứ chạy trong trình duyệt của bạn, nên JSON của bạn không bao giờ được tải lên.

Trình chuyển JSON sang mã là gì?

JSON sang mã là trình tạo kiểu miễn phí chạy hoàn toàn trong trình duyệt, đọc một mẫu JSON và viết ra mô hình dữ liệu tương ứng trong ngôn ngữ bạn chọn. Chọn một đích từ menu Chuyển sang - interface TypeScript, struct Go, struct serde Rust, schema Zod hoặc JSON Schema - và đặt Tên kiểu gốc để đặt nhãn cho kiểu cấp cao nhất. Bộ suy luận duyệt qua JSON: chuỗi, số, boolean và null được ánh xạ sang kiểu gốc, đối tượng lồng nhau được nâng thành kiểu có tên riêng, mảng lấy theo kiểu phần tử của nó, và các khóa thiếu ở một số phần tử mảng trở thành tùy chọn. Lập trình viên frontend và backend dùng nó để dựng DTO từ phản hồi API, phác thảo schema kiểm tra và giữ cho kiểu của client và server đồng bộ mà không phải viết tay mã rập khuôn.

Cách sử dụng Trình chuyển JSON sang mã

  1. Dán hoặc nhập một mẫu JSON tiêu biểu vào ô nhập, hoặc bấm Mẫu để tải một ví dụ.
  2. Mở Cài đặt và chọn một đích trong mục Chuyển sang: TypeScript, Go, Rust, Zod hoặc JSON Schema.
  3. Đặt Tên kiểu gốc để kiểm soát tên của interface, struct hoặc schema cấp cao nhất.
  4. Đọc mã được tạo trong bảng kết quả - nó tự động làm mới khi bạn chỉnh JSON hoặc đổi tùy chọn.
  5. Xem thống kê Kiểu để biết có bao nhiêu kiểu có tên được suy ra, rồi bấm Sao chép để lấy kết quả.

Ví dụ

Đối tượng sang interface TypeScript

Đầu vào

{ "id": 1, "name": "Ada", "active": true }

Đầu ra

export interface Root {
  id: number;
  name: string;
  active: boolean;
}

Đối tượng lồng nhau sang struct Go

Đầu vào

{ "user": { "age": 30 } }

Đầu ra

type User struct {
	Age float64 `json:"age"`
}

type Root struct {
	User User `json:"user"`
}

Mảng có khóa bị thiếu sang schema Zod

Dán một mảng như [{"a":1,"b":2},{"a":3}] và chuyển Chuyển sang thành Zod. Vì phần tử thứ hai không có b, trình tạo đánh dấu b là .optional() trong z.object được suy ra, nên schema chấp nhận cả hai dạng.

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

JSON của tôi có được tải lên đâu đó không?
Không. Việc phân tích và tạo mã chạy hoàn toàn trong trình duyệt của bạn bằng một bộ suy luận tích hợp. JSON của bạn không bao giờ rời khỏi thiết bị, và công cụ vẫn hoạt động khi ngoại tuyến.
Những đích nào được hỗ trợ?
Interface TypeScript, struct Go (với thẻ json và omitempty cho trường tùy chọn), struct serde Rust (với derive Serialize/Deserialize và rename khi một trường được đổi tên), schema Zod và JSON Schema draft-07. Công cụ chỉ tạo những gì nó có thể suy ra trung thực từ mẫu của bạn.
Trường tùy chọn được quyết định thế nào?
Từ mẫu của bạn. Khi một mảng chứa các đối tượng và một khóa bị thiếu ở một số đối tượng, khóa đó được suy ra là tùy chọn. Ngoài ra, mọi khóa có mặt trong mẫu đều được coi là bắt buộc.
Còn số, null và kiểu hỗn hợp thì sao?
Số được ánh xạ sang kiểu dấu phẩy động của ngôn ngữ (number, float64, f64), null được ánh xạ sang kiểu nullable hoặc kiểu giá trị tùy theo đích, và một trường giữ các kiểu khác nhau giữa các mẫu sẽ lui về một kiểu rộng rãi (unknown, interface{}, serde_json::Value) thay vì đoán.
Vì sao kết quả của tôi trống hoặc hiển thị lỗi?
Đầu vào phải là JSON hợp lệ. Nếu phân tích thất bại, công cụ hiển thị lỗi kèm dòng và cột khi có thể; sửa vị trí được chỉ ra và mã sẽ được tạo lại ngay.

Công cụ liên quan