免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


n8n邪修指南:小白与高手的差距,只缺这份动态表达式避坑指南

发布日期:2025-08-16 15:23:48 浏览次数: 1667
作者:AIfy Life

微信搜一搜,关注“AIfy Life”

推荐语

n8n动态表达式全攻略:从新手到高手的20+实用技巧,帮你轻松搞定复杂数据提取!

核心内容:
1. 新手必备的5个基础表达式,解决80%常见问题
2. 进阶文字处理技巧,让数据清洗效率翻倍
3. 实战踩坑经验分享,避免常见错误和陷阱

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

 

你是否有面对n8n的数据流抓狂的经历。明明数据就在那里,却怎么也提取不出来。

嵌套了三层的JSON数据像迷宫,你试了十几个节点还是无法取出那个该死的字段。更崩溃的是,老板明早8点要看报表。这种无力感,像极了明明有一把钥匙,却怎么也打不开眼前的锁。

今天,我要把压箱底的技能全部交给你——n8n动态表达式的完整攻略。不是那种官方文档式的枯燥说教,而是20+个能立即解决你实际问题的表达式,外加我踩过的所有坑。

第一关:新手村必备技能(看完就能用)

别被"表达式"这三个字吓到。其实它就像游戏里的快捷键,学会了能让你事半功倍。

1. 获取数据:{{$json.字段名}}

小白理解:就像从包裹里拿东西,$json是包裹,字段名是你要的物品。

实际场景

  • • 获取用户名:{{$json.username}}
  • • 获取邮箱:{{$json.email}}
  • • 获取订单号:{{$json.orderId}}

踩坑警告:字段名必须一模一样!usernameuserName是两个完全不同的东西。我曾因为一个大写字母debug了半小时...

2. 拼接文字:{{'文字' + $json.字段}}

现实用途:给用户发个性化消息

直接上例子

{{'你好,' + $json.name + '同学'}}
// 结果:你好,小明同学

进阶玩法:用反引号更简洁

{{`你好,${$json.name}同学`}}
// 效果一样,但更优雅

3. 计算数字:直接写算式

使用场景:算价格、算折扣、算提成

实用示例

  • • 打8折:{{$json.price * 0.8}}
  • • 加运费:{{$json.price + 10}}
  • • 算提成:{{$json.sales * 0.1}}

4. 设置默认值:{{$json.字段 || '默认值'}}

痛点解决:防止数据缺失导致流程崩溃

救命示例

{{$json.nickname || '匿名用户'}}
// 如果没有昵称,就显示"匿名用户"

专家提示:这个小技巧能让你的工作流稳定性提升90%。养成习惯,你会感谢自己的。

5. 获取当前序号:{{$itemIndex}}

应用场景:批量处理时显示进度

实战案例

{{'正在处理第' + ($itemIndex + 1) + '个订单'}}
// 注意要+1,因为序号从0开始

第二关:进阶技巧(让你效率翻倍)

掌握了基础,现在来点能让同事惊呼"卧槽"的技巧。

文字处理三板斧

1. 转大小写

{{$json.code.toUpperCase()}}    // 转大写:abc → ABC
{{$json.code.toLowerCase()}}    // 转小写:ABC → abc

使用场景:处理验证码、统一格式

2. 去空格

{{$json.input.trim()}}
// "  你好  " → "你好"

使用场景:清理用户输入,避免因为空格导致匹配失败

3. 替换内容

{{$json.content.replace('旧词', '新词')}}
// 把文章中的"旧词"全部换成"新词"

使用场景:批量修改文案、屏蔽敏感词

数组操作(处理列表数据)

4. 数组长度

{{$json.items.length}}
// 获取列表有多少项

使用场景:统计订单商品数、计算参与人数

5. 数组转文字

{{$json.tags.join('、')}}
// ['游戏', '动漫', '科技'] → "游戏、动漫、科技"

使用场景:显示用户标签、生成关键词

6. 检查包含

{{$json.hobbies.includes('游戏')}}
// 返回 true 或 false

使用场景:判断用户兴趣、筛选目标人群

条件判断(最强大的功能)

7. 三元运算(简化版if)

{{$json.age >= 18 ? '成年' : '未成年'}}

翻译成人话:如果年龄>=18,显示"成年",否则显示"未成年"

更复杂的例子

{{$json.score >= 90 ? '优秀' : $json.score >= 60 ? '及格' : '不及格'}}

这一行代码,替代了3个IF节点!

第三关:高手秘籍(掌握这些你就是大神)

这部分内容,是区分小白和高手的分水岭。但别怕,我会用最简单的方式讲清楚。

时间处理(n8n内置了超强的时间库)

1. 获取当前时间

{{$now}}                           // 当前时间
{{$now.toFormat('yyyy-MM-dd')}}   // 格式化:2024-03-15
{{$now.toFormat('HH:mm:ss')}}     // 格式化:14:30:00

2. 时间计算

{{$now.plus({days: 7})}}          // 7天后
{{$now.minus({hours: 2})}}        // 2小时前

实战案例:自动设置过期时间

{{$now.plus({days: 30}).toFormat('yyyy-MM-dd')}}
// 30天后的日期,用于设置会员到期时间

深层数据提取(对付复杂JSON)

3. 安全访问深层数据

{{$json.user?.profile?.avatar}}

解释:即使user或profile不存在也不会报错,这个?.太救命了!

4. 复杂查询(JMESPath)

{{$jmespath($json, 'users[0].name')}}
// 获取第一个用户的名字

适用场景:数据嵌套很深,普通方法搞不定时

多行代码(终极大招)

5. 复杂逻辑处理

{{(() => {
  const price = $json.price;
  const vip = $json.isVip;
  
  if (vip && price > 100) {
    return price * 0.7;  // VIP且满100打7折
  } else if (vip) {
    return price * 0.9;  // VIP打9折
  } else {
    return price;        // 原价
  }
})()}}
看起来复杂?其实就是把多个判断写在一起,避免创建一堆节点。

第四关:血泪教训(帮你避坑)

每一个坑,都是真金白银换来的教训。

巨坑一:数据类型混乱

问题:明明是数字10,加5变成了"105"

// 错误
{{$json.count + 5}}  // "10" + 5 = "105"

// 正确
{{Number($json.count) + 5}}  // 10 + 5 = 15

巨坑二:空值炸弹

问题:某个字段为空,整个流程崩溃

// 危险写法
{{$json.user.name}}

// 安全写法
{{$json.user?.name || '匿名'}}

巨坑三:性能黑洞

问题:处理大量数据时卡死

// 表达式处理1000条数据会很慢
// 解决:大数据请用Code节点,不要硬上表达式

额外福利:5个立即能用的表达式

  1. 1. 生成随机ID{{'ORDER' + Date.now()}}
  2. 2. 隐藏手机号{{$json.phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')}}
  3. 3. 计算折扣力度{{Math.round((1 - $json.salePrice / $json.originalPrice) * 100) + '%'}}
  4. 4. 智能截取文字{{$json.text.length > 20 ? $json.text.slice(0, 20) + '...' : $json.text}}
  5. 5. 批量生成标签{{$json.keywords.split(',').map(k => '#' + k.trim()).join(' ')}}

从小白到高手的蜕变

现在,你已经掌握了n8n表达式的核心技能。那些曾经需要拖拽10个节点才能实现的功能,现在一个表达式就搞定。

但更重要的是,你获得了一种全新的思维方式——不再是工具的奴隶,而是数据的主人。

下一步:

  1. 1. 打开n8n,找一个简单的流程
  2. 2. 尝试用表达式替代2-3个节点
  3. 3. 感受效率提升的快感

记住:高手和小白的区别,往往就是一个表达式的距离。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询