Dialog Flow Webhook JSON响应如何提取键值对展示给聊天用户
聊天场景下访问Webhook响应字段的方法
你拿到的Webhook响应为标准JSON结构,顶层包含2个字段:product_data(存放商品信息的数组)、source(数据来源标识)。其中product_data数组的每一项对应单个商品的全部属性字段。
通用访问逻辑
- 校验数据来源:直接读取顶层
source字段即可,示例响应中该字段值为webhookdata - 访问商品属性前先判断
product_data数组长度是否大于0,避免空数据导致报错 - 数组非空时,取下标为
0的首个商品对象的对应属性即可,取值对应规则如下:- 商品分类:
product_data[0].Category - 商品系列:
product_data[0].Collection_EN - 商品名称:
product_data[0].Product_Name_EN - 商品规格:
product_data[0].Size_Volume_TC - 商品SKU:
product_data[0].Sku - 商品类型:
product_data[0].Type
- 商品分类:
常用场景代码示例
JavaScript/Node.js(适用于飞书/企业微信自定义机器人、网页聊天插件)
// 假设Webhook响应已赋值给res变量 if (res.product_data?.length) { const product = res.product_data[0] // 拼接给用户的回复内容 const reply = `为你查询到匹配商品: 📦 分类:${product.Category} ✨ 系列:${product.Collection_EN} 🛍 名称:${product.Product_Name_EN.trim()} 📏 规格:${product.Size_Volume_TC} 🔖 SKU编码:${product.Sku} 🎯 类型:${product.Type}` } else { const reply = "未查询到对应商品信息" } // 直接将reply内容发送给聊天用户即可
Python(适用于钉钉机器人、微信公众号/小程序后端、自定义聊天服务)
# 假设Webhook响应已赋值给res变量 product_list = res.get("product_data", []) if product_list: product = product_list[0] reply = f"""为你查询到匹配商品: 📦 分类:{product['Category']} ✨ 系列:{product['Collection_EN']} 🛍 名称:{product['Product_Name_EN'].strip()} 📏 规格:{product['Size_Volume_TC']} 🔖 SKU编码:{product['Sku']} 🎯 类型:{product['Type']}""" else: reply = "未查询到对应商品信息" # 直接将reply内容发送给聊天用户即可
注意事项
如果业务场景允许返回多个商品,直接遍历product_data数组拼接所有商品信息即可,取值前增加非空判断可以避免字段缺失、数据为空时的程序报错。
内容的提问来源于stack exchange,提问作者Aymal Khan
相关产品推荐
相关产品推荐

