I have an AngularJS + MVC 5 + Web API 2 app that allows users to manage collections of objects in the browser and commit all changes at once when a Save button is clicked. As changes are made, one or more properties are added to the JavaScript objects: IsAdded, IsUpdated, IsRemoved. The properties are checked server-side to determine what to do when persisting the model.
The model is served up using Json.NET via Web API, and the base class is:
public class CollectionItemViewModel : ICollectionItem
{
public bool IsAdded { get; set; }
public bool IsUpdated { get; set; }
public bool IsRemoved { get; set; }
}
This works great, but adds cruft to my serialized JSON. I can choose to not serialize these three properties with ShouldSerialize, but that also prevents them from deserializing.
public bool ShouldSerializeIsAdded()
{
return false;
}
public bool ShouldSerializeIsUpdated()
{
return false;
}
public bool ShouldSerializeIsRemoved()
{
return false;
}
Is it possible to deserialize, but not serialize, specific properties using Json.NET?