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

Newtonsoft.Json.DeserializeObject反序列化后sys_id为NULL问题排查

问题原因及解决方法

你的问题出在JSON结构和C#类结构不匹配:

  • 你获取的JSON最外层是一个对象,其中result字段是一个数组(用[]包裹),数组里才是包含sys_id的单个对象。
  • 但你直接用result类去反序列化整个JSON对象,这个类只对应数组里的元素,无法匹配外层的结构,所以sys_id始终为null。

正确的类定义

需要先定义一个根类来匹配JSON的外层结构:

public class ApiResponse
{
    public List<result> result { get; set; }
}

public class result
{
    public string sys_id { get; set; }
}

正确的反序列化代码

var response = Newtonsoft.Json.JsonConvert.DeserializeObject<ApiResponse>(jsonString);
// 取数组里的第一个元素的sys_id
string sysId = response.result?.FirstOrDefault()?.sys_id;

另一种临时解决方法(不推荐长期使用)

如果不想新增根类,也可以直接解析JSON数组:

JObject jsonObj = JObject.Parse(jsonString);
JArray resultArray = (JArray)jsonObj["result"];
result x = resultArray.FirstOrDefault()?.ToObject<result>();
// 此时x.sys_id就能拿到对应值

内容的提问来源于stack exchange,提问作者John H.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 01:02:10