从jarray中删除指定元素的问题

Posted 落忆无痕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从jarray中删除指定元素的问题相关的知识,希望对你有一定的参考价值。

技术分享
string jsonText = "[{\"a\": \"aaa\",\"b\": \"bbb\",\"c\": \"ccc\"},{\"a\": \"aa\",\"b\": \"bb\",\"c\": \"cc\"}]";
            var mJObj = JArray.Parse(jsonText);
            //需求,删除列表里的a节点的值为\"aa\"的项
            IList<JToken> _ILIST = new List<JToken>(); //存储需要删除的项
            JArray _JARRAY = new JArray();

            foreach (var ss in mJObj)  //查找某个字段与值
            {
                if ((((JObject)ss)["a"]).ToString() == "aa")
                {
                    _ILIST.Add(ss);
                    _JARRAY.Add(ss);

                    Console.Write(_ILIST[0]);
                    Console.Write(_ILIST[0].GetHashCode());
                    Console.Write("\r\n---------------------------\r\n");
                    Console.Write("\r\n---------------------------\r\n");
                    Console.Write(_JARRAY[0]);
                    Console.Write(_JARRAY[0].GetHashCode());
                    Console.Write("\r\n---------------------------\r\n");
                    Console.Write("\r\n---------------------------\r\n");
                    Console.Write(mJObj[1].GetHashCode());
                   
                }
            }

            foreach (var item in _ILIST)  //移除mJObj  有效
            {
                mJObj.Remove(item);
            }
            foreach (var item in _JARRAY)  //移除mJObj  无效
            {
                mJObj.Remove(item);
            }
View Code

通过_ILIST删除是有效的。

通过_JARRAY删除是无效的。

请问有谁能帮我指点一下么?

 

以上是关于从jarray中删除指定元素的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何将 JArray 的所有元素添加到 C# 中的 JObject?

如何访问 JArray 的元素(或迭代它们)

结束一个片段

从 JArray 中获取唯一的列值

js从数组中删除指定值(不是指定位置)的元素

not(expr|ele|fn)从匹配元素的集合中删除与指定表达式匹配的元素