JSONからZodスキーマを生成する方法


  1. 手動でZodスキーマを作成する方法: Zodは、JavaScriptオブジェクトでスキーマを定義するためのライブラリです。以下は、手動でZodスキーマを作成する方法の例です。
const { z } = require("zod");
const schema = z.object({
  title: z.string(),
  tags: z.array(z.string()),
  content: z.string(),
});
console.log(schema);

この例では、z.objectメソッドを使用してオブジェクトスキーマを定義し、各プロパティの型を指定しています。

  1. JSONスキーマからZodスキーマを生成する方法: もし既存のJSONスキーマがある場合、それをZodスキーマに変換することも可能です。以下は、JSONスキーマからZodスキーマを生成する方法の例です。
const { z } = require("zod");
const { jsonSchema } = require("zod-json-schema");
const jsonSchemaData = {
  type: "object",
  properties: {
    title: { type: "string" },
    tags: { type: "array", items: { type: "string" } },
    content: { type: "string" },
  },
};
const schema = z.fromJSON(jsonSchemaData);
console.log(schema);

この例では、z.fromJSONメソッドを使用してJSONスキーマをZodスキーマに変換しています。

  1. JSONデータからZodスキーマを推論する方法: もしJSONデータが既に存在し、それを基にZodスキーマを生成したい場合、Zodには自動的にスキーマを推論する機能があります。以下は、JSONデータからZodスキーマを推論する方法の例です。
const { z } = require("zod");
const jsonData = {
  title: "Example Title",
  tags: ["tag1", "tag2"],
  content: "Example content.",
};
const schema = z.infer(z.object(jsonData));
console.log(schema);

この例では、z.inferメソッドを使用してJSONデータからスキーマを推論しています。

これらの方法を使用すると、JSONデータをバリデーションするためのZodスキーマを生成できます。必要に応じて、スキーマにバリデーションルールや制約を追加することもできます。