zapier - Zapier - 将数据添加到 JSON 响应(应用程序开发)
问题描述
我们正在创建一个 Zapier 应用程序来向公众公开我们的 API,因此任何人都可以使用它。人们使用的主要端点返回一个非常大且复杂的 JSON 对象。Zapier 看起来很难解析嵌套的复杂 JSON。但是对于一个非常简单的响应对象,它确实很棒,例如
{“字段”:“值”}
我们返回的数据具有这种结构,我们希望将一些字段移动到响应的根目录,以便 Zapier 轻松解析它。
"networkSections": [
{
"identifier": "Deductible",
"label": "Deductible",
"inNetworkParameters": [
{
"key": "Annual",
"value": " 600.00",
"message": null,
"otherInfo": null
},
{
"key": "Remaining",
"value": " 600.00",
"message": null,
"otherInfo": null
}
],
"outNetworkParameters": null
},
那么,我们可以做些什么来退还剩余的免赔额吗?
我已经到了这一步(添加 outputFields),但这会返回一个值数组。我不确定如何在 Zap 或 App 中解析这个数组。
{key: 'networkSections[]inNetworkParameters[]key', label: 'xNetworkSectionsKey',type: 'string'},
即这将返回一个“Annual”、“Remaining”等数组
解决方案
好问题。在这种情况下,发生了很多事情,并且outputFields
无法完全处理所有事情。:(
在您的示例中,inNetworkParameters
包含一个对象数组。在我们的文档中,我们将这些称为行项目。这些行项目可以传递给其他操作,但是不同的预期结构会带来一些问题。我们处理这个问题的方法是让用户将行项目从一个步骤的输出映射到另一个步骤的每个字段的输入。所以如果第 1 步返回
{
"some_array": [
{
"some_key": "some_value"
}
]
}
下一步需要发送
{
"data": [
{
"some_other_key": "some_value"
}
]
}
用户可以通过映射some_array.some_key
到data.some_other_key
.
综上所述,如果您想始终返回一个Remaining Deductible
对象,则必须通过修改结果对象本身来实现。只要这些数据始终保持相同的顺序,您就可以执行类似于
var data = z.JSON.parse(bundle.response.content);
data["Remaining Deductible"] = data.networkSections[0].inNetworkParameters[1].value;
return data;
如果顺序不同,您将不得不执行某种搜索来找到您想要返回的对象。
希望对大家有帮助!
推荐阅读
- python - norm.cdf的参数是什么
- javascript - 按特定属性值嵌套的对象的递归过滤数组
- elasticsearch - 如何修复错误“[标准]令牌过滤器已被删除”?
- css - 使用 useState 在 React 中将背景图像添加到导航链接
- java - Drive API Watch 方法 Java 中的错误 403 dailyLimitExceededUnreg
- json - json 验证器抱怨此解析错误
- observable - Ngrx:如何订阅组件中的一些操作?
- perl - 使用相同散列的元素声明散列
- discord.py - on_ready 上的 discord.py Music Bot 加入指定频道并使用 youtube-dl 流式传输 mp3
- extjs - 在调整大小之前清空网格单元格