创建JSON字符串反序列化时遇解析错误,寻求技术帮助
问题分析与解决
错误原因
- JSON语法不符合标准:JSON规范强制要求属性名、字符串值必须使用双引号,你代码里用了单引号,这是触发反序列化错误的核心原因。
- 冗余逗号:
to数组的闭合方括号前多了一个逗号,属于无效JSON语法。 - 字段拼写错误:
personlize应为personalize(SendGrid的邮件发送API要求该字段正确拼写,否则后续请求也会失败)。
修正后的代码
int id = 321; var data2 = @"{ ""personalize"": [ { ""to"": [ { ""email"": ""amirsal@gmail.com.com"" } ] } ] }"; data1 = data2; var json = JsonConvert.DeserializeObject<object>(data1); var response1 = await client.RequestAsync(method: SendGridClient.Method.POST, requestBody: json.ToString(), urlPath: "mail/send");
额外建议
尽量避免手动拼接JSON字符串,容易出现语法错误。可以用匿名类或强类型对象序列化,更可靠:
var mailData = new { personalize = new[] { new { to = new[] { new { email = "amirsal@gmail.com.com" } } } } }; var json = JsonConvert.SerializeObject(mailData); // 后续请求代码不变
内容的提问来源于stack exchange,提问作者Faisal
相关产品推荐
相关产品推荐

