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

在C# RestSharp中如何将JSON响应转换为List集合

问题原因

你的写法存在两个核心错误:

  • JSON结构中emails是数组类型,不能直接对数组用["value"]取单个属性,且你要反序列化的目标是emails数组整体,不是单个value字段
  • 若你的Job类和emails数组内的对象结构不匹配,反序列化也会失败
解决步骤

1. 定义和JSON结构匹配的模型类

根据你给出的JSON结构,先定义对应的C#类:

// 对应emails下的sources数组内的对象
public class Source
{
    public string domain { get; set; }
    public string uri { get; set; }
    public string extracted_on { get; set; }
    public string last_seen_on { get; set; }
    public bool still_on_page { get; set; }
}

// 对应emails下的verification对象
public class Verification
{
    public string date { get; set; }
    public string status { get; set; }
}

// 对应emails数组内的单个对象
public class EmailItem
{
    public string value { get; set; }
    public string type { get; set; }
    public int confidence { get; set; }
    public List<Source> sources { get; set; }
    public string first_name { get; set; }
    public string last_name { get; set; }
    public string position { get; set; }
    public string seniority { get; set; }
    public string department { get; set; }
    public string linkedin { get; set; }
    public string twitter { get; set; }
    public string phone_number { get; set; }
    public Verification verification { get; set; }
}

2. 正确执行反序列化

你需要先取到emails数组的完整JSON内容,再反序列化为List<EmailItem>:

// 先获取emails数组的JSON字符串
string emailsJson = jsonResponse["data"]["emails"].ToString();
// 反序列化为EmailItem集合
List<EmailItem> emailList = JsonConvert.DeserializeObject<List<EmailItem>>(emailsJson);

如果你只需要所有邮箱的value值组成的列表,可以在反序列化后再提取:

List<string> emailValueList = emailList.Select(e => e.value).ToList();

内容的提问来源于stack exchange,提问作者Smita Raj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:06:00