C#中如何统计反序列化为dynamic的JSON的value数组元素个数
方案1:沿用当前dynamic写法
你用JsonConvert.DeserializeObject反序列化到dynamic时,JSON数组对应的底层类型是Newtonsoft.Json的JArray,可以直接读取Count属性获取元素数,加上空判断避免空引用异常即可:
// value为null/不存在时返回0 int valueCount = jss.value != null ? jss.value.Count : 0;
你的示例数据运行后valueCount的值就是2,符合预期。
方案2:更稳妥的JObject解析写法(推荐)
dynamic类型没有编译时类型检查,容易出现运行时错误,建议直接用JObject解析JSON:
using Newtonsoft.Json.Linq; // 需先引入该命名空间 // ... 其他代码 string kq = reader.ReadToEnd(); JObject jObj = JObject.Parse(kq); // 空安全写法,value为null/不存在时返回0 int valueCount = jObj["value"]?.Count() ?? 0;
内容的提问来源于stack exchange,提问作者Nguyen Diep
相关产品推荐
相关产品推荐

