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

如何在Zapier Code Zap中用JS将非标准JSON转为合规格式

解决Zapier无法兼容API返回的非标准JSON格式问题

问题背景

API返回的是非标准JSON格式,每行一个独立的JSON对象,示例如下:

{"city":"Warren Township","country":"United States"}
{"city":"New York","country":"United States"}
{"city":"Stamford","country":"United States"}

而Zapier的Webhook Retrieve Poll触发要求JSON必须是带方括号的数组格式,示例如下:

[{"city":"Warren Township","country":"United States"},
{"city":"New York","country":"United States"},
{"city":"Stamford","country":"United States"}]

使用默认Webhook触发时,报错:We couldn't find an entry。

失败的尝试

尝试用Code by Zapier转换数据时,报错:Error while retrieving: You must return a single object or array of objects,错误代码如下:

return fetch(https://api.iterable.com/api/export/data.json?dataTypeName=emailSend&range=Yesterday, {
  mode: 'cors',
  headers: { 'x-api-key': 'xxxxxxxxxxxxxxxxxxxxxxx',
  'User-Agent' : 'My-App',
  'Accept': '*/*', }, }) 

.then(response => response.text())
.catch(error => console.log('Error while fetching:', error))

callback(error, "output")

let xStr = response.text();
let obj = JSON.parse(xStr);

output = {obj};

注:这段代码存在多处问题:异步Promise处理逻辑混乱,callback调用时机错误,重复调用response.text()(该方法仅能调用一次),且未将结果整理为Zapier要求的格式。

正确解决方案

通过以下JavaScript代码成功完成格式转换,适配Zapier的要求:

let url = 'https://api.iterable.com/api/export/data.json?dataTypeName=emailOpen&range=Today&onlyFields=email&onlyFields=createdAt&onlyFields=templateId&onlyFields=messageId&onlyFields=campaigniD&onlyFields=contentID'
let iterableData = 'undefined'

let response = await fetch(url, {
    method: "GET",
    headers: {
    'Api-Key': '----------redacted----------------',
    },
});

iterableData = await response.text()

// 将每行对象转换为合法JSON数组格式
iterableData = iterableData.replace(/\}/g, "},")
iterableData = "[" + iterableData.slice(0, -2) + "]"
let iterableJSON = JSON.parse(iterableData)

output = {iterableJSON}

代码说明:

  1. 使用await处理异步请求,确保完整获取响应文本;
  2. 通过正则替换将每个对象末尾的}替换为},,为数组格式做准备;
  3. 在首尾添加方括号,将非标准格式包裹为合法的JSON数组;
  4. 解析转换后的字符串为JSON对象,并赋值给output,符合Zapier对返回值的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 18:53:12