Nhà phát triển / Loại

Bộ chuyển đổi JSON sang lược đồ Zod

Tạo lược đồ Zod và kiểu TypeScript từ một mẫu JSON, hỗ trợ đối tượng lồng nhau, mảng, trường tùy chọn, có thể null và số nguyên.

Bộ chuyển đổi JSON sang lược đồ Zod: Mỗi đối tượng trong mẫu sẽ trở thành một lược đồ z.object, được xuất cùng kiểu suy ra từ lược đồ đó; các đối tượng lồng nhau sẽ có lược đồ riêng mang tên tương ứng. Các đối tượng trong một mảng sẽ được hợp nhất: khóa bị thiếu ở một số đối tượng sẽ nhận .optional(), khóa đôi khi có giá trị null sẽ nhận .nullable(), còn các số nguyên sẽ nhận .int(). Các lược đồ được tạo đã được kiểm tra bằng cách phân tích chính các mẫu của chúng với Zod. Chạy 100% cục bộ trong trình duyệt của bạn, không có tệp nào được tải lên máy chủ.

Lượt chạy
Trong trình duyệt của bạn
Chi phí
Miễn phí · không cần đăng ký
Trạng thái khả dụng
Sẵn sàng sử dụng
JSON sang ZodXử lý cục bộ

Chạy hoàn toàn trong trình duyệt của bạn

TypeScript

import { z } from "zod";

export const AddressSchema = z.object({
  city: z.string(),
  zip_code: z.string(),
});
export type Address = z.infer<typeof AddressSchema>;

export const UserSchema = z.object({
  id: z.number().int(),
  user_name: z.string(),
  avatar_url: z.string(),
  score: z.number(),
  tags: z.array(z.string()),
  address: AddressSchema,
  manager_id: z.number().int().nullable(),
  nickname: z.string().optional(),
});
export type User = z.infer<typeof UserSchema>;

export const UserListSchema = z.array(UserSchema);

Mỗi đối tượng được gán một schema và một kiểu được suy luận. Các khóa bị thiếu trong một số đối tượng sẽ nhận .optional(), các khóa đôi khi có giá trị null sẽ nhận .nullable(), còn số nguyên sẽ nhận .int(); hãy nới lỏng mọi quy tắc mà API của bạn không bảo đảm.

Sử dụng schema

Gọi Schema.parse(data) để xác thực và báo lỗi khi dữ liệu không hợp lệ, hoặc Schema.safeParse(data) để nhận kết quả mà bạn có thể kiểm tra mà không cần try và catch. Kiểu dữ liệu được xuất ra từ z.infer luôn đồng bộ với schema khi bạn chỉnh sửa schema.

Nếu chỉ cần kiểu dữ liệu trong thời gian biên dịch, JSON sang TypeScript cung cấp các interface thông thường; để xác thực theo một JSON Schema có sẵn, hãy dùng công cụ xác thực JSON Schema.

Siết chặt các quy tắc được tạo

Mẫu chỉ thể hiện những gì nó chứa, vì vậy hãy xem schema là điểm khởi đầu: thêm .email(), .url() hoặc .datetime() vào các chuỗi tương ứng, dùng z.enum([...]) cho các trường có tập giá trị cố định, và dùng .min() hoặc .max() khi dữ liệu của bạn có giới hạn.

Cách sử dụng

  1. Dán một mẫu JSON, lý tưởng nhất là một mảng gồm vài bản ghi điển hình.
  2. Đặt tên cho kiểu cấp cao nhất.
  3. Sao chép các lược đồ và dùng chúng để xác thực dữ liệu trong thời gian chạy.

Quyền riêng tư và giới hạn

JSON được chuyển đổi trong trình duyệt của bạn và không bao giờ được tải lên.

Công cụ liên quan

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

Tại sao nên dùng Zod thay vì một interface TypeScript?

Một interface biến mất khi mã được biên dịch nên không thể kiểm tra dữ liệu trong thời gian chạy; lược đồ Zod kiểm tra dữ liệu và cung cấp cho bạn cùng kiểu đó bằng z.infer.

Có thực sự nên dùng .int() cho số nguyên không?

Chỉ khi API của bạn đảm bảo đó là các số nguyên. Nếu giá hoặc điểm số có thể có phần thập phân, hãy xóa .int() ngay cả khi mẫu chỉ chứa các số nguyên.

Công cụ có xử lý các chuỗi như ngày tháng hoặc email không?

Chúng được định kiểu là z.string(); hãy thêm các phép tinh chỉnh như .email(), .url() hoặc bước kiểm tra ngày tháng khi dữ liệu của bạn yêu cầu.

Công cụ miễn phí · trong trình duyệt của bạn lượt chạy · không cần tài khoản