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

JsonConvert.DeserializeObject反序列化JSON为List时类型不匹配报错

错误原因

传入的JSON字符串根节点是{}包裹的单个对象,结构与单个birdDataSolutionVM实体完全对应;但反序列化时指定的目标类型为List<birdDataSolutionVM>,该集合类型仅支持反序列化[]包裹的JSON数组结构,类型与JSON结构不匹配。解析器读取到根节点第一个属性metalRingID时就检测到结构冲突,直接抛出本次异常。

解决方法

调整反序列化的目标泛型类型,和JSON实际根结构保持一致即可:

var birdRecords = JsonConvert.DeserializeObject<birdDataSolutionVM>(data);

如果下游业务逻辑强制要求返回List<birdDataSolutionVM>类型,无需修改JSON或给实体添加特性,将反序列化得到的单个对象包装为列表即可:

var singleData = JsonConvert.DeserializeObject<birdDataSolutionVM>(data);
var birdRecordList = new List<birdDataSolutionVM> { singleData };

额外注意:代码中birdDataSolutionVM引用的birdRecordVM类需要与birdData数组内的字段结构匹配,否则嵌套属性反序列化会失败,参考实现如下:

public class birdRecordVM
{
    [JsonProperty("longitude")]
    public double longitude { get; set; }
    [JsonProperty("latitude")]
    public double latitude { get; set; }
    [JsonProperty("gridRef")]
    public string gridRef { get; set; }
    [JsonProperty("date")]
    public DateTime date { get; set; }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 15:15:17