Trích Xuất Schema
Tạo kiểu TypeScript, JSON Schema, Go, Python, Java và C# từ phản hồi API dạng JSON hoặc CSV. Tự phát hiện enum, trường tùy chọn và nullable. Miễn phí, riêng tư.
Về Công Cụ Trích Xuất Schema
Công cụ Trích xuất Schema là công cụ trực tuyến miễn phí để tự động tạo định nghĩa kiểu và schema từ dữ liệu JSON hoặc CSV của bạn. Chuyển đổi dữ liệu thành TypeScript interface, JSON Schema, Go struct, Python class, Java class hoặc C# class—hoàn hảo cho các lập trình viên cần nhanh chóng tạo định nghĩa kiểu từ phản hồi API hoặc tập dữ liệu.
Hỗ trợ những định dạng đầu ra nào?
Công cụ Trích xuất Schema hỗ trợ 6 định dạng đầu ra phổ biến:
1. TypeScript Interface - Cho dự án TypeScript/JavaScript
2. JSON Schema - Định dạng định nghĩa schema chuẩn
3. Go Struct - Cho ứng dụng Go (Golang)
4. Python Class - Cho dự án Python (với type hint)
5. Java Class - Cho ứng dụng Java
6. C# Class - Cho dự án C# và .NET
Mỗi định dạng được tự động tạo với kiểu phù hợp, trường tùy chọn và cấu trúc lồng nhau dựa trên dữ liệu đầu vào của bạn.
Nó phát hiện kiểu trường như thế nào?
Công cụ phân tích dữ liệu của bạn và thông minh phát hiện:
- Kiểu cơ bản: string, number (số nguyên so với số thực), boolean, null
- Mảng và kiểu phần tử của chúng
- Đối tượng lồng nhau và cấu trúc của chúng
- Định dạng ngày/giờ (ISO 8601)
- Trường tùy chọn so với bắt buộc (khi phân tích nhiều bản ghi)
- Enum: khi một trường chuỗi hoặc số trong các bản ghi của bạn chỉ dùng một tập giá trị nhỏ, lặp lại và cố định (ví dụ: trạng thái, vai trò, đơn vị tiền tệ), nó được tạo thành union literal của TypeScript, enum của JSON Schema hoặc Literal[...] của Python. Bật 'Phát hiện enum' để dùng tính năng này; các trường có giá trị hoàn toàn duy nhất (như ID) vẫn giữ kiểu thường.
Dữ liệu mẫu càng đại diện, schema được tạo càng chính xác.
Tạo ra JSON Schema bản nháp (draft) nào?
Schema được tạo khai báo draft-07 ($schema: http://json-schema.org/draft-07/schema#) và xác thực sạch trong các trình xác thực tuân thủ chuẩn như ajv. Số nguyên được tạo là "integer" (không phải "number") để giữ độ chính xác, ngày ISO 8601 trở thành {"type":"string","format":"date-time"}, các trường kiểu không xác định bỏ qua từ khóa type thay vì dùng kiểu không hợp lệ, và enum được phát hiện sẽ thêm mảng "enum". Các trường bắt buộc được liệt kê trong "required".
Trường tùy chọn và nullable được xử lý ra sao?
Đây là hai khái niệm khác nhau và được tạo riêng. Tùy chọn nghĩa là khóa đôi khi vắng mặt (xuất hiện ở một số bản ghi nhưng không phải tất cả) — TypeScript đánh dấu bằng ?, Go/C# dùng con trỏ/kiểu nullable, Python bọc trong Optional[...], và JSON Schema để nó ngoài "required". Nullable nghĩa là khóa tồn tại nhưng giá trị có thể là null — điều này thêm | null trong TypeScript và "null" vào danh sách type của JSON Schema. Một trường có thể vừa tùy chọn vừa nullable. 'Phát hiện trường tùy chọn' chỉ kích hoạt khi bạn cung cấp nhiều bản ghi để so sánh.

Tôi có thể dùng CSV làm đầu vào không?
Có! Khi sử dụng đầu vào CSV:
1. Dòng đầu tiên phải chứa tiêu đề cột
2. Công cụ phân tích kiểu dữ liệu từ các giá trị
3. Số được phát hiện là kiểu số
4. Boolean (true/false) được phát hiện
5. Tất cả giá trị khác mặc định là chuỗi
Đối với cấu trúc lồng nhau phức tạp, đầu vào JSON cung cấp kết quả chính xác hơn. CSV tốt nhất cho cấu trúc dữ liệu phẳng như bảng cơ sở dữ liệu.
Trường Tên Kiểu/Lớp là gì?
Tên Kiểu/Lớp là định danh được sử dụng cho định nghĩa kiểu được tạo của bạn:
- TypeScript: interface [Tên] { ... }
- JSON Schema: { "title": "[Tên]", ... }
- Go: type [Tên] struct { ... }
- Python: class [Tên]: ...
Chọn tên có ý nghĩa mô tả dữ liệu của bạn (ví dụ: "NguoiDung", "SanPham", "ApiResponse"). Mặc định là "Root" nếu để trống.
Dữ liệu của tôi có rời khỏi thiết bị không?
Không. Tất cả quá trình tạo schema diễn ra hoàn toàn trong trình duyệt của bạn bằng JavaScript. Dữ liệu của bạn không bao giờ rời khỏi máy tính, đảm bảo quyền riêng tư hoàn toàn cho phản hồi API, schema cơ sở dữ liệu hoặc bất kỳ cấu trúc dữ liệu bí mật nào.
Làm thế nào để sử dụng schema đã tạo?
Sao chép mã đã tạo và dán vào dự án của bạn:
- TypeScript: Lưu dưới dạng file .ts hoặc thêm vào kiểu hiện có
- JSON Schema: Sử dụng để xác thực, tài liệu hoặc tạo mã
- Go: Thêm vào file nguồn .go của bạn
- Python: Thêm vào file .py (hoạt động với trình kiểm tra kiểu như mypy)
- Java/C#: Thêm vào file lớp của bạn
Mã được tạo sẵn sàng sử dụng mà không cần sửa đổi, mặc dù bạn có thể tùy chỉnh nó để phù hợp với tiêu chuẩn mã hóa của dự án.
