J'ai le JSON ci-dessous
[ { "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%" } ]
Ce que je voulais faire, c'était en quelque sorte supprimer Month4, Month5 etc. du JSON, puis le reconvertir en chaîne.
J'ai essayé de regarder dans la méthode JArray.remove mais cela supprime l'élément lui-même du tableau. Quelqu'un peut-il me dire comment je peux supprimer complètement des propriétés de JArray.
3 Réponses :
JArray est pour []
(array)
JObject est pour {}
(object)
Mois1 .. Mois12
ce sont tous des objets. Dans ce cas, vous devez utiliser JObject
JArray ja = JArray.Parse(json); JObject jo = (JObject)ja[0]; jo.Property("Month4").Remove(); json = jo.ToString();
Merci Simonare
var array = JArray.Parse(json); foreach (JObject elem in array) { foreach (var elementToRemove in new List<string>() {"Month4", "Month5" }) { elem.Property(elementToRemove).Remove(); } } var resultJson = array.ToString();
Génial :) .. Merci beaucoup
Vous pouvez appeler Remove ()
depuis JProperty
pour les supprimer. De plus, au lieu de supprimer des propriétés spécifiques par nom, vous souhaiterez peut-être simplement supprimer les propriétés nommées "MonthX" dont la valeur est nulle.
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();
J'apprécie vraiment votre aide :)
Vous n'utiliserez pas
JArray
, mais plutôtJObject
, ciblant un élément dans leJArray
. Voir stackoverflow.com/q/32153010/215552 . Pour cibler un élément dans leJArray
, consultez stackoverflow.com/q/26372250/215552