使用JObject.Parse提取Case_Id时遇StartArray错误的解决方法
问题解决:JSON解析报错(StartArray)的处理方案
你的错误核心是运行时实际接收的JSON是数组格式,而非你调试时看到的单个JSON对象。JObject.Parse仅能解析以{}包裹的单个对象,但实际数据是以[]开头的数组结构,因此触发了Error reading JObject from JsonReader错误。
解决方案
根据实际数据的数组长度,分两种场景处理:
- 场景1:数组仅包含一个目标对象
解析为JArray后直接取第一个元素:
var dataArray = JArray.Parse(myjson); var caseId = dataArray[0]["Case_Id"]?.ToString();
- 场景2:数组包含多个对象
遍历数组逐个提取Case_Id:
var dataArray = JArray.Parse(myjson); foreach (var obj in dataArray) { var caseId = obj["Case_Id"]?.ToString(); // 此处添加对caseId的业务逻辑处理 }
补充建议
可以在代码中临时加入日志或打印语句,输出运行时的myjson完整内容,确认实际数据结构是否符合预期,避免测试数据与生产数据不一致导致的误解。
内容的提问来源于stack exchange,提问作者Antônio Magalhaes
相关产品推荐
相关产品推荐

