
【n8n教程】Set 节点实现数据转换魔法在 n8n 工作流中数据的转换和处理是自动化的核心。Set 节点编辑字段节点是 n8n 最强大的数据操作工具它允许你创建、修改、重命名或删除工作流中的数据字段就像一把数据处理的瑞士军刀。本教程将带你从零开始通过实践案例快速掌握 Set 节点的所有核心功能。点击获取最新AI资讯、n8n工作流、开发经验分享Set 节点是什么为什么你需要它Set 节点的核心作用是让你完全控制工作流中的数据结构。无论数据从哪里来API、数据库、表单等Set 节点都能帮你将原始、混乱的数据转换成你需要的格式。想象这样一个场景你从一个 API 获取了学生数据其中名字被分成firstName和lastName两个字段但你想在数据库中存储为单一的fullName字段。这就是 Set 节点大显身手的时候。它不仅能合并字段还能进行计算、条件判断、格式转换甚至添加时间戳。核心概念两种工作模式Set 节点提供了两种不同的模式来满足不同的使用场景模式一手动映射Manual Mapping手动映射是初学者的最佳选择。这种模式提供了直观的图形界面你可以逐个添加或修改字段无需编写代码。如何使用手动映射打开 Set 节点选择ModeManual Mapping点击Add Field按钮添加新字段输入字段名称例如fullName在值字段中输入内容或表达式关键技巧你可以从左侧的INPUT面板拖拽前一个节点的数据到值字段中这样 n8n 会自动生成表达式。例如如果你拖拽firstName字段n8n 会为你写入{{ $json.firstName }}这是一个表达式用来动态获取前一个节点的 firstName 值。模式二JSON 输出JSON OutputJSON 模式适合需要创建复杂数据结构或大量字段的场景。你直接编写 JSON 代码来定义所有字段这给了你更多的灵活性。JSON 模式的优势可以快速批量创建多个字段能够构建嵌套的对象和数组结构更容易复制粘贴复杂的配置JSON 模式示例{fullName:{{ $json.firstName }} {{ $json.lastName }},email:{{ $json.email }},joinDate:{{ $now.toISOString() }},status:active}关键参数详解让数据处理更精准1. Keep Only Set Fields仅保留设置的字段这个选项决定了输出数据中包含哪些内容。启用工作流只输出你在 Set 节点中明确定义的字段所有其他输入数据都会被丢弃。这很有用特别是当前一个节点返回了许多不需要的字段时。禁用默认保留所有来自前一个节点的原始数据加上你新添加或修改的字段。这是更安全的选择不会意外丢失数据。2. Include Binary Data包含二进制数据如果你的工作流处理文件、图片等二进制数据启用此选项可确保这些数据不会在 Set 节点处丢失。3. Support Dot Notation支持点表示法默认情况下如果你设置一个名为address.city的字段n8n 会创建一个嵌套的 JSON 对象结构就像这样{address:{city:北京}}如果禁用此选项就会变成平级的字段address.city键名包含点。4. Ignore Type Conversion Errors忽略类型转换错误启用此选项让 n8n 在类型不匹配时不报错例如试图将文本转换为数字时。实战技巧五个常见使用场景技巧一合并多个字段场景从 API 获取的数据中用户名被分成first_name和last_name你需要合并成fullName。在 Set 节点中的配置字段名fullName字段值{{ $json.first_name }} {{ $json.last_name }}运行后输出数据会包含一个新的fullName字段值为两个名字的组合。技巧二数值计算和转换场景学生的数学和英文成绩分别存储你需要计算平均分。配置方法字段名averageScore字段值{{ ($json.mathScore $json.englishScore) / 2 }}Set 节点会自动执行计算得出平均分。技巧三条件判断和分级场景根据成绩给学生分等级90 以上优秀、80-89 良好、80 以下及格。配置方法字段名grade字段值{{ $json.averageScore 90 ? 优秀 : $json.averageScore 80 ? 良好 : 及格 }}这使用了 JavaScript 的三元运算符实现条件分支。技巧四添加时间戳场景记录每条数据处理的时间便于审计和日志。配置方法字段名processedAt字段值{{ $now.toISOString() }}$now是 n8n 的内置函数返回当前时间的 ISO 格式字符串。技巧五重命名和清理数据场景后端 API 返回的字段名称不规范例如usr_eml代表用户邮箱需要转换为可读的名称。配置方法字段名email字段值{{ $json.usr_eml }}然后启用Keep Only Set Fields这样输出中就只有规范化的字段名了。完整可执行工作流案例下面是一个完整的、可直接在 n8n 中运行的工作流演示了 Set 节点的多个实际应用。这个工作流模拟处理学生成绩数据{name:学生数据转换工作流-Set节点教程,nodes:[{parameters:{},id:trigger,name:Manual Trigger,type:n8n-nodes-base.manualTrigger,typeVersion:1,position:[50,100]},{parameters:{mode:manual,fields:[{name:firstName,value:张三,type:string},{name:lastName,value:李四,type:string},{name:mathScore,value:85,type:number},{name:englishScore,value:92,type:number},{name:status,value:active,type:string}]},id:step1,name:Set - 原始数据,type:n8n-nodes-base.set,typeVersion:1,position:[250,100],credentials:{}},{parameters:{mode:manual,fields:[{name:fullName,value:{{ $json.firstName }} {{ $json.lastName }},type:string},{name:averageScore,value:{{ ($json.mathScore $json.englishScore) / 2 }},type:number},{name:grade,value:{{ $json.averageScore 90 ? 优秀 : $json.averageScore 80 ? 良好 : 及格 }},type:string},{name:timestamp,value:{{ $now.toISOString() }},type:string}]},id:step2,name:Set - 数据转换,type:n8n-nodes-base.set,typeVersion:1,position:[450,100],credentials:{}}],connections:{trigger:{main:[[{node:step1,type:main,index:0}]]},step1:{main:[[{node:step2,type:main,index:0}]]}}}如何使用这个工作流复制上面的 JSON 代码从{开始到最后的}打开 n8n 工作区创建一个新工作流导入工作流在 n8n 中找到导入选项粘贴上面的 JSON 代码执行工作流点击执行工作流或按下相应按钮查看结果在最后一个 Set 节点“Set - 数据转换”中可以看到转换后的完整数据这个工作流演示的功能功能说明输出结果字段合并合并 firstName 和 lastNamefullName: “张三 李四”数值计算计算两科成绩的平均分averageScore: 88.5条件判断根据平均分分等级grade: “良好”时间戳添加处理时间timestamp: “2025-12-01T14:28:00Z”初学者常见问题解答Q: Set 节点和 Function 节点有什么区别A: Set 节点用于简单的数据转换添加、修改、删除字段而 Function 节点允许你编写完整的 JavaScript 代码处理更复杂的逻辑。对于大多数场景Set 节点已经足够了。Q: 如何访问前一个节点的嵌套数据A: 使用点表示法。例如如果前一个节点返回{ address: { city: 北京 } }你可以用{{ $json.address.city }}来访问城市名称。Q: 我的表达式总是出错怎么办A: 确保使用{{ }}包围表达式字符串用单引号或双引号包围检查字段名称拼写是否正确区分大小写使用Execute Step测试节点查看错误提示Q: 如何在 Set 节点中处理数组数据A: 可以直接在 JSON 模式中创建数组。例如[ {{ $json.item1 }}, {{ $json.item2 }} ]。对于复杂的数组处理可能需要配合使用 Item Lists 或 Function 节点。总结Set 节点的核心价值✅简单易用图形化界面让初学者快速上手✅功能强大支持表达式、计算、条件判断✅数据安全灵活的选项确保你不会意外丢失数据✅工作流中枢几乎每个复杂工作流都会用到 Set 节点掌握 Set 节点后你就能够清理和格式化来自任何数据源的数据为下游节点如数据库、API、邮件准备正确格式的数据添加业务逻辑如计算、分类、标记等构建更复杂的自动化工作流官方文档n8n系列教程