C# 删除JArray的一个成员

C# 删除JArray的一个成员,c#,json.net,C#,Json.net,我有下面的问题 [ { "Code": "Global Payroll", "Month1": 1, "Month2": 0, "Month3": 0, "Month4": null, "Month5": null, "Month6": null, "Month7": null, "Month8": null, "Month9":

我有下面的问题

[
    {
        "Code": "Global Payroll",
        "Month1": 1,
        "Month2": 0,
        "Month3": 0,
        "Month4": null,
        "Month5": null,
        "Month6": null,
        "Month7": null,
        "Month8": null,
        "Month9": null,
        "Month10": null,
        "Month11": null,
        "Month12": null,
        "YTD": 1,
        "PercentOfTotal": "16.67%"
    },
    {
        "Code": "GV Payroll",
        "Month1": 0,
        "Month2": 0,
        "Month3": 3,
        "Month4": null,
        "Month5": null,
        "Month6": null,
        "Month7": null,
        "Month8": null,
        "Month9": null,
        "Month10": null,
        "Month11": null,
        "Month12": null,
        "YTD": 3,
        "PercentOfTotal": "50.00%"
    }  
]
我想做的是从JSON中删除Month4、Month5等,然后将其转换回字符串


我尝试查看JArray.remove方法,但这会从数组中删除项本身。有人能告诉我如何从JArray中完全删除属性吗。

JArray是用于
[]
(数组)

JObject用于
{}
(对象)

Month1。。12月份它们都是对象。在这种情况下,您需要使用
JObject

JArray ja = JArray.Parse(json);
JObject jo = (JObject)ja[0];
jo.Property("Month4").Remove();
json = jo.ToString();
var-array=JArray.Parse(json);
foreach(数组中的JObject元素)
{
foreach(var elementToRemove in new List(){“Month4”、“Month5”})
{
属性(elementToRemove.Remove();
}              
}
var resultJson=array.ToString();
您可以从
JProperty
调用
Remove()
来删除它们。另外,您可能不希望按名称删除特定属性,而只希望删除名为“MonthX”且其值为null的属性

var json = /* your json here */;
var payrolls = JArray.Parse(json);

foreach(var payroll in payrolls)
{
    foreach (var property in payroll.Children<JProperty>().ToArray())
    {
        if (property.Name.StartsWith("Month") && property.Value.Type == JTokenType.Null)
            property.Remove();
    }
}

json = payrolls.ToString();
var json=/*您的json在这里*;
var payrolls=JArray.Parse(json);
foreach(工资单中的var工资)
{
foreach(payroll.Children().ToArray()中的var属性)
{
if(property.Name.StartsWith(“月”)&&property.Value.Type==JTokenType.Null)
属性。移除();
}
}
json=payrolls.ToString();

您不会使用
JArray
,而是使用
JObject
,以
JArray
中的项目为目标。看见要在
JArray
中定位某个项目,请参阅Awesome:)…非常感谢您的帮助。非常感谢您的帮助:)
var json = /* your json here */;
var payrolls = JArray.Parse(json);

foreach(var payroll in payrolls)
{
    foreach (var property in payroll.Children<JProperty>().ToArray())
    {
        if (property.Name.StartsWith("Month") && property.Value.Type == JTokenType.Null)
            property.Remove();
    }
}

json = payrolls.ToString();