如何用C# JsonConvert解析JSON并确保users为List<User>类型?
解决方法
1. 定义匹配的实体类(最推荐)
直接创建和JSON结构对应的类,强类型解析最安全,代码也更清晰:
// 确保你已定义好User类 public class User { public int Id { get; set; } // 其他对应属性... } // 定义包含users和count的响应类 public class UserResponse { public List<User> Users { get; set; } public int Count { get; set; } }
解析代码:
UserResponse response = JsonConvert.DeserializeObject<UserResponse>(result); List<User> userList = response.Users; // 此处userList为确定的List<User>类型
2. 用JObject手动解析(无需额外类)
如果不想新增实体类,可借助Newtonsoft.Json的JObject手动提取并转换字段:
using Newtonsoft.Json.Linq; JObject jsonObj = JObject.Parse(result); List<User> userList = jsonObj["users"].ToObject<List<User>>(); // 同时可直接提取count:int count = (int)jsonObj["count"];
3. 从dynamic字典转换类型
若坚持使用Dictionary<string, dynamic>,可将dynamic类型的users转换为List
Dictionary<string, dynamic> parsedJson = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(result); List<User> userList = parsedJson["users"].ToObject<List<User>>();
内容的提问来源于stack exchange,提问作者Tania
相关产品推荐
相关产品推荐

