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.
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ã
- 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ụ.
- Mở Cài đặt và chọn một đích trong mục Chuyển sang: TypeScript, Go, Rust, Zod hoặc JSON Schema.
- Đặ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.
- Đọ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.
- 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
Mã hóa / giải mã Base32 / Base58
Mã hóa văn bản thành Base32 (RFC 4648) hoặc Base58 (bảng chữ cái Bitcoin) và giải mã cả hai trở lại văn bản, hoàn toàn an toàn với UTF-8 và toàn bộ trong trình duyệt của bạn.
Mã hóa / Giải mã Base64
Mã hóa hoặc giải mã Base64 (an toàn UTF-8) với bảng chữ cái URL-safe, đệm tùy chọn, ngắt dòng 64/76, đếm byte và ký tự trực tiếp, cùng chế độ xem byte dạng hex hoặc nhị phân.
Công cụ chuyển đổi kiểu chữ và đếm
Chuyển văn bản giữa UPPERCASE, camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, dot.case và hơn thế, đồng thời đếm ký tự, từ và dòng.
Trình định dạng và rút gọn mã
Làm đẹp hoặc rút gọn HTML, CSS và JavaScript ngay lập tức trong trình duyệt của bạn, với thụt lề 2 dấu cách, 4 dấu cách hoặc tab và nén JavaScript bằng Terser.