如何在Zoho Deluge入站Webhook的嵌套JSON中提取email值
解决Zoho Webhook获取MailChimp嵌套JSON中email值的问题
问题根源
你拿到的Webhook请求body是双层嵌套JSON:外层的body字段值是一个被转义过的JSON字符串,而非直接的JSON对象。当前你只解析了外层结构,内层仍为字符串格式,所以调用getJSON()/get()这类方法自然返回null。
另外注意你提供的原始JSON存在语法错误:ip_signup字段末尾缺少一个逗号,这会直接导致JSON解析失败,需要先修正这个问题。
正确的Deluge代码实现
// 1. 获取外层嵌套的JSON字符串 jsonStr = body.get("body"); // 2. 将字符串解析为JSON对象 parsedJson = jsonStr.toJSON(); // 3. 逐层提取data中的email值 email = parsedJson.getJSON("data").get("email"); // 调试输出验证结果 info "获取到的email:" + email;
补充说明
- 如果需要同时获取
merges里的EMAIL字段,写法类似:mergeEmail = parsedJson.getJSON("data").getJSON("merges").get("EMAIL"); - 务必保证MailChimp发送的Webhook数据语法正确,逗号、引号这类符号缺失或错误都会导致JSON解析失败。
内容的提问来源于stack exchange,提问作者Riverine
相关产品推荐
相关产品推荐

