在C#中如何将二维数组响应反序列化为List<Model>?
问题原因与解决方案
你的接口返回的JSON是双层嵌套数组(外层数组包裹着内层数组),但你尝试直接反序列化为单层的List<Model>,类型不匹配导致反序列化失败。
解决方法
方法1:先反序列化为双层列表,再提取内层数据
// 先反序列化为List<List<Model>> var nestedList = JsonConvert.DeserializeObject<List<List<Model>>>(Response); // 提取内层列表,若外层为空则返回空列表 List<Model> Res = nestedList.FirstOrDefault() ?? new List<Model>();
方法2:使用JArray解析后提取内层数组
using Newtonsoft.Json.Linq; // 解析为JArray var outerArray = JArray.Parse(Response); // 取外层数组的第一个元素(内层数组),再反序列化为List<Model> List<Model> Res = outerArray.First().ToObject<List<Model>>();
额外检查
确保你的Model类定义与JSON字段匹配:
public class Model { public int BillRateCardId { get; set; } public string ExternalRateCardId { get; set; } }
内容的提问来源于stack exchange,提问作者karthikeyan sivakumar
相关产品推荐
相关产品推荐

