首页 > 代码库 > 从jarray中删除指定元素的问题

从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中删除指定元素的问题