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

RestSharp反序列化GET接口响应报错 无法获取Job字段的URL值

问题根因

你遇到的反序列化错误是由2处类型不匹配导致的:

  • 你的Items类中将Job属性定义为List<Job>类型,但返回的JSON中Job是单个对象,不是数组
  • 你的Items类中将DeliveredToNeighbour属性定义为string类型,但返回的JSON中该字段是布尔值(false),类型不匹配
修复方案

首先修改Items类的属性定义:

public class Items
{
    public string Id { get; set; }
    public string DateCreated { get; set; }
    public string Gps { get; set; }
    public string ProcessOutcome { get; set; }
    public string ProcessOutcomeInternal { get; set; }
    public string ProcessType { get; set; }
    public string ProcessTypeInternal { get; set; }
    public string CallingCard { get; set; }
    public string AdhocLocation { get; set; }
    public string ProcessOutcomeReason { get; set; }
    public string ProcessOutcomeReasonInternal { get; set; }
    public string ProcessOutcomeReasonText { get; set; }
    public string IntendedTime { get; set; }
    public string SafePlace { get; set; }
    // 改1:将string改为bool,匹配JSON的布尔类型
    public bool DeliveredToNeighbour { get; set; }
    public string NeighbourAddress { get; set; }
    public string IdentificationDetails { get; set; }
    // 改2:将List<Job>改为Job,匹配JSON的单个对象结构
    public Job Job { get; set; }
    
    // 以下JSON返回的其他字段如果不需要使用,可以不用定义,反序列化会自动忽略未声明的属性
}
RestSharp调用及提取Url示例

如果使用RestSharp v107+版本,可直接用泛型方法自动反序列化:

var client = new RestClient("你的接口基础地址");
var request = new RestRequest("你的接口路径", Method.Get);
// 按需添加请求头、参数等
var response = await client.ExecuteAsync<BlujayGetJobResponse>(request);

if (response.IsSuccessful)
{
    var result = response.Data;
    // 遍历提取所有Job的Url
    foreach (var item in result.Items)
    {
        string jobUrl = item.Job.Url;
        // 这里处理你的业务逻辑,存入变量即可
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:45:02