C# 删除json c数组中的json元素
我有一个来自服务器的json数组。像C# 删除json c数组中的json元素,c#,arrays,C#,Arrays,我有一个来自服务器的json数组。像 ArrayExp = [ { "id" : "number", "name" : "a name", ... }, { "id" : "number", "name" : "a name", ... }, ... ]; 我想从所有数组中删除一个id。我正在尝试: for (int i = 0; i < ArrayExp.Length; i++) { ArrayExp[i].id
ArrayExp = [
{
"id" : "number",
"name" : "a name",
...
},
{
"id" : "number",
"name" : "a name",
...
},
...
];
我想从所有数组中删除一个id。我正在尝试:
for (int i = 0; i < ArrayExp.Length; i++) {
ArrayExp[i].id // I don't know how to remove it!
}
有人能帮我吗?ArrayExp元素是的对象
为了删除它的属性,您应该将每个元素映射到一个没有id的新元素中
我用的是来自系统。动态,希望对你有帮助
public static void Main()
{
var arrayExp = GetArray();
var newCollection = ArrayExp.ToList().Select(x => RedefineObject(x, "Id"));
}
static object[] GetArray()
{
var person1 = new { Name = "name", Id = 1 };
var person2 = new { Name = "name", Id = 2 };
var person3 = new { Name = "name", Id = 3 };
return new[] { person1, person2, person3 };
}
static object RedefineObject(object obj, string propertyToRemove)
{
var properties = obj.GetType().GetProperties().Where(x => x.Name != propertyToRemove);
var dict = new Dictionary<string, object>();
var eobj = new ExpandoObject();
var eoColl = (ICollection<KeyValuePair<string, object>>)eobj;
properties.ToList().ForEach(x => dict.Add(x.Name, x.GetValue(obj)));
dynamic dynObj = dict;
return dynObj;
}
首先不要混合使用JS和C.ArrayExp.RemoveAti;如果你在c@HenkHolterman在c中,您可以像在js中一样执行循环。数组就是一个例子,我可以使用ArrayExp[I].id从c中的对象中选择id。你是什么意思?@AamirNakhwa,但我只想删除所有对象中的id,而不是所有的对象。我的意思是[{id:number,不会在C中编译。发布实际的类。最好写一个。这可以,但我不知道将来元素是否会更改,我需要在不使用元素名称的情况下执行此操作…只有id名称
public static void Main()
{
var arrayExp = GetArray();
var newCollection = ArrayExp.ToList().Select(x => RedefineObject(x, "Id"));
}
static object[] GetArray()
{
var person1 = new { Name = "name", Id = 1 };
var person2 = new { Name = "name", Id = 2 };
var person3 = new { Name = "name", Id = 3 };
return new[] { person1, person2, person3 };
}
static object RedefineObject(object obj, string propertyToRemove)
{
var properties = obj.GetType().GetProperties().Where(x => x.Name != propertyToRemove);
var dict = new Dictionary<string, object>();
var eobj = new ExpandoObject();
var eoColl = (ICollection<KeyValuePair<string, object>>)eobj;
properties.ToList().ForEach(x => dict.Add(x.Name, x.GetValue(obj)));
dynamic dynObj = dict;
return dynObj;
}