如何在JObject.Parse生成对象的data节点下新增Count键值对
问题原因
你调用Add失败的核心原因是myJObject["data"]返回的是JToken基类对象,该类没有Add方法,只有它的子类JObject才支持直接添加属性。
正确实现方式
有两种更简便的方式,不需要用AddAfterSelf:
方式1:强转后调用Add方法
先将data节点强转为JObject,即可直接调用Add方法新增键值对:
// 强转data节点为JObject JObject dataObj = (JObject)myJObject["data"]; // 直接新增属性 dataObj.Add("Count", count);
方式2:索引器直接赋值(最简便)
直接通过索引器赋值即可,属性不存在时会自动新增,存在时会覆盖原有值:
myJObject["data"]["Count"] = count;
关于AddAfterSelf的说明
你提到的x["Data"].AddAfterSelf(new JProperty("Count", count))写法无法实现需求,该方法会把Count属性添加到data节点的同级位置,而不是data节点内部,不符合预期的结构。
另外注意JSON键名区分大小写,原始结构中是小写的data,不要误写为大写Data导致节点找不到。
内容的提问来源于stack exchange,提问作者Bike_dotnet
相关产品推荐
相关产品推荐

