You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSON反序列化问题:SendFields键值对始终为Null求助

问题分析与解决

你的反序列化失败核心原因是类结构和JSON数据的层级结构完全不匹配:

  1. JSON中的SendFields是一个直接包含Category、email属性的对象,但你在MyData类里把SendFields定义成了KeyValuePair<string, SendFields>——JSON里并没有键值对的键部分,反序列化时无法匹配,直接导致该字段为null。
  2. 同时,SendFields类里的Category和email定义为KeyValuePair<string, string>也错误,JSON里这两个字段是包含value属性的嵌套对象,并非键值对结构。

修正后的类结构

1. 定义对应嵌套value的类

public class FieldValue
{
    [JsonProperty("value")]
    public string Value { get; set; }
}

2. 修正SendFields类

public class SendFields
{
    [JsonProperty("Category")]
    public FieldValue Category { get; set; }
    [JsonProperty("email")]
    public FieldValue email { get; set; }
}

3. 修正MyData类

public class MyData
{
    [JsonProperty("SendFields")]
    public SendFields SendFields { get; set; }
}

验证反序列化

用修正后的类反序列化你的JSON数据,就能正确获取所有字段值:

var json = @"{""SendFields"": {""Category"": {""value"": ""Request Something""}, ""email"": {""value"": ""someone@somplace.com""}}}";
var data = JsonConvert.DeserializeObject<MyData>(json);

// 访问值示例:
// data.SendFields.Category.Value → "Request Something"
// data.SendFields.email.Value → "someone@somplace.com"

内容的提问来源于stack exchange,提问作者Jeff Douglas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 04:34:56