MailJet .NET API 创建营销活动时JSON输入无效错误求助
解决MailJet .NET API创建Campaign时的JSON格式错误
你碰到的这个400错误很明确是JSON格式不合法导致的,从错误信息里的"ctsList":"|ContactLis..."能直接看出来,问题大概率出在ContactsList字段的赋值上——这个字段的格式完全不符合MailJet API的要求。
我给你整理了具体的排查和修复步骤:
- 先明确ContactsList的正确格式:MailJet要求这个字段是一个包含联系人列表ID的对象数组,绝对不能传类似
"|ContactLis..."这种不规范的字符串,必须用符合JSON规范的数组结构。 - 修正你的代码:把ContactsList字段改成正确的构造方式,下面是补全后的示例代码:
var client = new MailjetClient(MjApikeyPublic, MjApikeyPrivate){ Version = ApiVersion.V3 }; // 正确构造联系人列表参数:用JArray包装包含ID的JObject var targetContactLists = new JArray(); targetContactLists.Add(new JObject { {"ID", 123456} }); // 替换成你实际的联系人列表ID MailjetRequest request = new MailjetRequest{ Resource = Campaigndraft.Resource, } // 绑定正确格式的ContactsList .Property(Campaigndraft.ContactsList, targetContactLists) // 别忘了补充其他必填字段,比如活动名称、发件人信息等 .Property(Campaigndraft.CampaignName, "我的测试营销活动") .Property(Campaigndraft.SenderEmail, "your-sender@domain.com") .Property(Campaigndraft.SenderName, "你的发件人名称"); // 发送请求(同步场景可改用Post方法,异步场景用await PostAsync) MailjetResponse response = await client.PostAsync(request);
- 额外排查小技巧:
- 对照MailJet的CampaignDraft文档,确保所有必填字段都正确赋值,没有遗漏
- 调试时可以查看SDK生成的最终JSON payload,确认格式是否合法——比如用Fiddler抓包,或者开启SDK的日志功能
- 检查其他字段的类型是否匹配要求,比如ID必须是整数,不能传字符串
这样调整后,应该就能解决这个JSON格式错误了。
内容的提问来源于stack exchange,提问作者BUDDHIKA
相关产品推荐
相关产品推荐

