如何移除JArray中value匹配删除列表项的JObject
移除JArray中匹配指定ID的JObject
你可以使用Newtonsoft.Json(Json.NET)的API实现需求,以下是两种实用方案:
方案一:修改原JArray(批量移除)
先收集所有需要删除的JObject,再从原数组中逐个移除(避免遍历过程中修改集合导致异常):
// 假设已解析得到原始JArray JArray originalArray = JArray.Parse(yourJsonContent); List<string> IdsToDelete = new List<string> { "275869398491926942" }; // 筛选出所有value在删除列表中的JObject var itemsToRemove = originalArray .Where(jObj => IdsToDelete.Contains(jObj["value"].ToString())) .ToList(); // 批量移除 foreach (var item in itemsToRemove) { originalArray.Remove(item); } // 输出处理后的JSON Console.WriteLine(originalArray.ToString(Formatting.Indented));
方案二:生成新的筛选后JArray
直接通过LINQ筛选出需要保留的元素,生成新的JArray,代码更简洁:
JArray originalArray = JArray.Parse(yourJsonContent); List<string> IdsToDelete = new List<string> { "275869398491926942" }; // 筛选出value不在删除列表中的元素,构建新JArray JArray filteredArray = new JArray( originalArray.Where(jObj => !IdsToDelete.Contains(jObj["value"].ToString())) ); // 输出结果 Console.WriteLine(filteredArray.ToString(Formatting.Indented));
两种方法都能得到你需要的输出结果,方案二更适合不需要保留原数组的场景,方案一则直接修改原数组。
内容的提问来源于stack exchange,提问作者abhishek
相关产品推荐
相关产品推荐

