本文介绍如何正确解析 zapier 中传入的 json 格式姓名字符串,避免正则误删关键结构,通过 json.parse() 安全转换为对象,再高效提取并拼接“first name”和“last name”字段,最终生成空格分隔的纯姓名字符串。
本文介绍如何正确解析 zapier 中传入的 json 格式姓名字符串,避免正则误删关键结构,通过 json.parse() 安全转换为对象,再高效提取并拼接“first name”和“last name”字段,最终生成空格分隔的纯姓名字符串。
在处理表单返回的结构化数据(如 [{"First Name":"JAMES","Last Name":"SMITH"},...])时,直接使用正则表达式(如 /[^a-z0-9]/gi)清理特殊字符是高风险做法:它会无差别删除引号、冒号、逗号、方括号等 JSON 必需符号,导致原始结构彻底丢失,后续无法准确区分不同记录或字段——正如示例中输出变成 FirstNameJAMESLastNameSMITH...,已完全不可逆。
推荐方案:以 JSON 解析为核心,语义化提取字段
Zapier 的 JavaScript 模块完全支持标准 ECMAScript 功能,因此应优先将输入字符串作为合法 JSON 解析,而非字符串文本处理:
let INPUT = inputData.INPUT;
// ✅ 安全解析:将 JSON 字符串转为原生数组对象
let visitors = JSON.parse(INPUT);
// ✅ 提取每条记录的姓名并拼接(推荐:清晰可维护)
let OUTPUT = visitors
.map(visitor => `${visitor["First Name"]} ${visitor["Last Name"]}`)
.join(' ');
output = { INPUT, OUTPUT };若追求极简写法且确认输入格式严格合规(无缺失字段、无转义异常),也可使用一行式方案:
立即学习“Java免费学习笔记(深入)”;
let OUTPUT = JSON.parse(INPUT).flatMap(v => [v["First Name"], v["Last Name"]]).join(' ');⚠️ 重要注意事项
- 务必校验输入合法性:生产环境中应在 JSON.parse() 外包裹 try...catch,防止因网络传输、编码错误等导致的非法 JSON 触发脚本中断:
let visitors; try { visitors = JSON.parse(INPUT); } catch (e) { throw new Error(`Invalid JSON input: ${e.message}`); }- 字段名敏感性:示例中键名为 "First Name" 和 "Last Name"(含空格),必须严格匹配,不可写作 firstName 或 first_name;若实际字段命名不一致,请按真实键名调整。
- 空格与分隔符控制:当前用 ' '(单空格)连接所有姓名;如需换行、逗号分隔或去重,可相应修改 .join() 参数及前置处理逻辑(如 .filter(Boolean) 去除空值)。
此方法不仅精准达成目标输出(如 JAMES SMITH SARAH SMITH),更具备可扩展性——后续如需添加邮箱、去重、按姓氏排序等操作,均可基于结构化对象自然实现,远胜脆弱的字符串正则清洗。










