You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Zod是否提供修改键名的方法?如何将schema中user_id改为user

在Zod中修改对象键名的方法

Zod本身没有内置的键重命名语法,但可以通过transform方法实现输入对象的键名转换,满足你的需求。

实现代码

const z = require('zod');

// 定义schema并添加transform转换逻辑
const schema = z.object({
    user_id: z.string()
}).transform((inputData) => {
    // 将user_id的值映射到新键user上
    return { user: inputData.user_id };
});

// 注意:输入的user_id需符合z.string()的类型要求,否则parse会抛出错误
let input = { user_id: "1234qwer5678" };

let output = schema.parse(input);

console.log(output); // 输出 { user: "1234qwer5678" }

扩展场景:保留其他字段

如果对象还有其他需要保留的字段,可以使用对象展开运算符来处理:

const schema = z.object({
    user_id: z.string(),
    age: z.number(),
    email: z.string().email()
}).transform(({ user_id, ...rest }) => {
    return { user: user_id, ...rest };
});

// 输入示例
let input = { user_id: "1234qwer5678", age: 25, email: "user@example.com" };
let output = schema.parse(input);
// 输出:{ user: "1234qwer5678", age: 25, email: "user@example.com" }

内容的提问来源于stack exchange,提问作者DMonde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 16:31:02