I have the following JSON string:
{      "results":[         {            "id":11,          "name":"Employee A",          "isEmployee":true       },       {          "id":12,          "name":"Employee B",          "isEmployee":true       },       {          "id":13,          "name":"Employee C",          "isEmployee":true       },       {          "id":14,          "name":"Contractor A",          "isEmployee":false       },       {          "id":15,          "name":"Contractor B",          "isEmployee":false       }    ],    "totalItems":5 }   I need to remove from it the id and isEmployee properties and leave only the name property.
Here is the desired result:
{      "results":[         {            "name":"Employee A"       },       {            "name":"Employee B"       },       {            "name":"Employee C"       },       {            "name":"Contractor A"       },       {            "name":"Contractor B"       }    ],    "totalItems":5 }   How can this be done in C# using Newtonsoft JSON.NET?
there is a Remove method present (not sure if it was at the time of this question)
For example:
var raw = "your json text"; var o = (Newtonsoft.Json.Linq.JObject)JsonConvert.DeserializeObject(raw); o.Property("totalItems").Remove() return o.ToString();   or for your exact input
var parent = JsonConvert.DeserializeObject<JObject>(raw); ((JArray)parent.Property("results").Value)     .Select(jo => (JObject)jo)     .ToList()     .ForEach(x =>          x             .Properties()             .ToList()             .ForEach(p =>             {                 if (p.Name != "name")                     p.Remove();             }))     //.Dump();     ; 
                        There are two basic approaches,
Either
JObject.Parse(json)); modify the object graph by updating the nested JObjects while traversing; serialize the original JObject which now represents the modified object graph.Or
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With