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

SnapLogic Router Snap JavaScript表达式求助:按CSV规则路由文档

解决SnapLogic Router Snap的条件路由问题

问题分析

你的需求是:输入为字典列表,检查前两个字典对象的Name字段值是否包含.csv;任意一个包含则路由到output-1,两者都不包含则路由到output-2。

你之前的表达式($.keys()[0] != 'Name') && ($.keys()[1] != 'Name')无效的原因是:输入是列表类型,$.keys()返回的是列表的索引(['0', '1']),所以你实际在判断索引字符串是否等于'Name',完全偏离了检查Name字段值的需求。

正确的表达式实现

1. 路由到output-1的表达式

该表达式检查前两个列表元素的Name字段(优先取顶层Name,不存在则取original.Name)是否包含.csv,任意一个满足则返回true:

($[0].get('Name', $[0].original.get('Name', '')).includes('.csv')) || ($[1].get('Name', $[1].original.get('Name', '')).includes('.csv'))

2. 路由到output-2的表达式

取上述表达式的反逻辑,即两个元素的Name都不包含.csv时返回true:

!($[0].get('Name', $[0].original.get('Name', '')).includes('.csv')) && !($[1].get('Name', $[1].original.get('Name', '')).includes('.csv'))

关键说明

  • 使用get(key, defaultValue)方法可以安全获取嵌套字段,避免因字段不存在导致表达式报错;
  • includes('.csv')用于判断字符串是否包含指定后缀,精准匹配你的需求;
  • $[0]和$[1]分别代表输入列表的第一个和第二个元素,符合你检查前两个对象的要求。

内容的提问来源于stack exchange,提问作者Sri Harsha Vunnam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 17:42:26