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

使用System.Text.Json反序列化JSON失败,请求排查解决

问题排查与解决

错误原因

你的JSON字符串顶层结构是一个对象(包含contacts属性的容器),而非直接的List<Contacts>数组。但你直接调用JsonSerializer.Deserialize<List<Contacts>>()尝试将整个JSON对象转换为列表,类型不匹配,因此抛出转换异常。

解决方案

需要定义一个匹配JSON顶层结构的根模型类,再通过该类完成反序列化,最终提取contacts列表:

1. 添加根模型类

public class ContactsRoot
{
    [JsonPropertyName("contacts")]
    public List<Contacts>? Contacts { get; set; }
}

2. 修改反序列化代码

var root = JsonSerializer.Deserialize<ContactsRoot>(myJsonString);
var myContacts = root?.Contacts;

这样就能正确解析JSON中的contacts数组,避免类型转换错误。

可选方案(无需新增类)

如果不想额外定义根类,也可以使用JsonDocument手动解析:

using var doc = JsonDocument.Parse(myJsonString);
var contactsElement = doc.RootElement.GetProperty("contacts");
var myContacts = contactsElement.Deserialize<List<Contacts>>();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 19:24:57