You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何查看使用Zod创建的JSON Schema?

如何查看使用Zod创建的JSON Schema?

我来帮你解决这个问题~你现在遇到的情况应该是转换后的JSON Schema没有完整展示出来,其实你的代码逻辑大方向是对的,只是有几个小细节需要调整:

  • 一定要用带缩进的JSON.stringify打印完整结构
    你提到直接console.log(jsonSchema)只看到$schema字段,这是因为Node.js的控制台在打印嵌套对象时,有时候会省略深层结构的展示(尤其是在默认配置下)。你代码里虽然写了JSON.stringify,但如果没加缩进参数,输出的是压缩后的字符串,可读性差;如果实际运行时没写JSON.stringify,直接打印对象就会出现结构缺失的情况。

    修改后的代码如下:

    import { z } from "zod";
    import { zodToJsonSchema } from "zod-to-json-schema";
    
    const zodSchema = z.object({
      name: z.string(),
      age: z.number()
    });
    
    const jsonSchema = zodToJsonSchema(zodSchema);
    // 第二个参数是替换函数(这里用null),第三个参数是缩进空格数,让输出格式化
    console.log(JSON.stringify(jsonSchema, null, 2));
    

    运行这段代码后,你就能看到完整的JSON Schema了,输出大概是这样:

    {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "properties": {
    "name": {
    "type": "string"
    },
    "age": {
    "type": "number"
    }
    },
    "required": [
    "name",
    "age"
    ]
    }

  • 检查依赖版本是否最新
    如果你按上面的方法还是看不到完整结构,可能是zod或者zod-to-json-schema的版本太旧,存在转换不完整的bug。可以执行下面的命令更新到最新版本:

    npm install zod@latest zod-to-json-schema@latest
    
  • 直接访问Schema的具体字段(可选)
    如果你不需要看完整结构,只想单独查看某个字段的Schema或者必填项列表,可以直接操作转换后的对象:

    // 打印name字段的JSON Schema定义
    console.log(jsonSchema.properties.name);
    // 打印所有必填字段的列表
    console.log(jsonSchema.required);
    

按照上面的方法调整后,你就能轻松看到用Zod创建的完整JSON Schema啦~

火山引擎 最新活动