C#移除JSON嵌套delta节点报错:无法操作JProperty求助
解决JSON中删除"delta"节点的报错问题
你遇到的Cannot add or remove items from Newtonsoft.Json.Linq.JProperty错误,是因为调用Remove方法的对象不对——你直接在JProperty上执行了删除操作,而Remove只能在JObject类型的节点上调用。
你的目标节点delta是嵌套在state这个JObject下面的属性,正确操作步骤是先定位到state节点,再删除它下面的delta:
示例代码
using Newtonsoft.Json.Linq; // 假设你的JSON内容存储在jsonStr变量中 JObject rootJson = JObject.Parse(jsonStr); // 获取state对应的JObject实例 JObject stateNode = (JObject)rootJson["state"]; // 删除state下的delta节点 stateNode.Remove("delta"); // 处理后的JSON字符串 string processedJson = rootJson.ToString();
补充说明
- 别直接对
rootJson["state"]["delta"]调用Remove,因为rootJson["state"]["delta"]返回的是JProperty类型,它不支持直接删除自身,必须通过父级JObject来操作。 - 你提供的原始JSON有两处语法错误:
D0600": "CCCC"后面缺少逗号,D2000": "DDDD",后面多了逗号,处理前需要修正,否则解析时会报错。
内容的提问来源于stack exchange,提问作者user1018379
相关产品推荐
相关产品推荐

