这个n8n模板提供了一个简单而强大的工具,用于验证给定的字符串输入是否为有效的JSON格式。您可以用它来预先验证来自外部源的数据,确保在进一步处理前数据的完整性,或为提交JSON字符串的用户提供即时反馈。
🔧 工作原理
-
Webhook:此节点作为工作流的入口点,监听传入的POST请求。它期望接收一个包含单个属性的JSON体:
- jsonString:您希望验证是否为JSON的字符串。
-
代码(JSON验证器):此节点包含自定义JavaScript代码,尝试解析webhook体中提供的jsonString。
- 如果jsonString可以成功解析,则表示它是有效的JSON,节点将返回一个包含valid: true的项。
- 如果解析失败,它将捕获错误并返回一个包含valid: false和具体错误消息的项。
- 此逻辑应用于通过节点的每个项,确保所有输入都经过验证。
-
响应Webhook:此节点将验证结果(valid: true或valid: false及错误消息)发送回发起webhook请求的服务。
👤 适用人群
此工作流非常适合:
- 开发者和集成者:在处理来自外部系统(API、webhook)的JSON负载之前预先验证,防止错误。
- 数据工程师:在将JSON数据存储到数据库或数据湖之前确保其完整性。
- API构建者:提供一个专用端点,供客户端测试其JSON字符串的有效性。
- 客户支持团队:快速检查用户提供的JSON配置是否有错误。
- 任何处理JSON数据的人:一种快速简便的方法,无需在每个应用程序中编写自定义代码即可编程检查JSON字符串的正确性。
📑 数据结构
触发webhook时,发送一个POST请求,其JSON体结构如下:
{
"jsonString": "{\"name\": \"n8n\", \"type\": \"workflow\"}"
}
无效JSON字符串示例:
{
"jsonString": "{name: \"n8n\"}" // 'name'周围缺少引号
}
工作流将返回一个指示有效性的JSON响应:
对于有效的JSON字符串:
{
"valid": true
}
对于无效的JSON字符串:
{
"valid": false,
"error": "Unexpected token 'n', \"{name: \"n8n\"}\" is not valid JSON"
}
⚙️ 设置说明
-
导入工作流:
- 在n8n编辑器中,点击“从JSON导入”并粘贴提供的工作流JSON。
-
配置Webhook路径:
- 双击Webhook节点。
- 在“路径”字段中,设置一个唯一且描述性的路径(例如/validate-json)。
-
激活工作流:
- 保存并激活工作流。
📝 提示
此JSON验证器工作流是一个坚实的起点。考虑以下增强功能:
-
增强错误反馈:
- 升级:在代码节点后添加一个Set节点,将错误消息格式化为更用户友好的字符串后再响应。
- 利用:使调用者更容易理解问题。
-
记录无效输入:
- 升级:在代码节点后,添加一个IF节点来检查valid是否为false。如果是,分支到一个节点,将无效的jsonString和错误记录到Google表格、数据库或日志服务中。
- 利用:跟踪常见的无效输入以进行调试或改进。
-
转换有效的JSON:
- 升级:如果JSON有效,您可以添加另一个Function节点来解析jsonString,然后直接在工作流中对解析后的JSON数据进行操作。
- 利用:将此验证器作为处理JSON数据的更大工作流的第一步。
-
异步验证:
- 升级:对于非常大的JSON字符串或高流量请求,考虑使用单独的排队机制(如RabbitMQ、SQS)和异步响应模式。
- 利用:防止webhook超时并提高系统响应能力。