 <p>Here's a generic reusable "ignore property" resolver based on <a href="http://stackoverflow.com/questions/13588022/exclude-property-from-serialization-via-custom-attribute-json-net/13588192#13588192">the accepted answer</a>:</p> <pre><code>/// &lt;summary&gt; /// Special JsonConvert resolver that allows you to ignore properties. See http://stackoverflow.com/a/13588192/1037948 /// &lt;/summary&gt; public class IgnorableSerializerContractResolver : DefaultContractResolver { protected readonly Dictionary&lt;Type, HashSet&lt;string&gt;&gt; Ignores; public IgnorableSerializerContractResolver() { this.Ignores = new Dictionary&lt;Type, HashSet&lt;string&gt;&gt;(); } /// &lt;summary&gt; /// Explicitly ignore the given property(s) for the given type /// &lt;/summary&gt; /// &lt;param name="type"&gt;&lt;/param&gt; /// &lt;param name="propertyName"&gt;one or more properties to ignore. Leave empty to ignore the type entirely.&lt;/param&gt; public void Ignore(Type type, params string[] propertyName) { // start bucket if DNE if (!this.Ignores.ContainsKey(type)) this.Ignores[type] = new HashSet&lt;string&gt;(); foreach (var prop in propertyName) { this.Ignores[type].Add(prop); } } /// &lt;summary&gt; /// Is the given property for the given type ignored? /// &lt;/summary&gt; /// &lt;param name="type"&gt;&lt;/param&gt; /// &lt;param name="propertyName"&gt;&lt;/param&gt; /// &lt;returns&gt;&lt;/returns&gt; public bool IsIgnored(Type type, string propertyName) { if (!this.Ignores.ContainsKey(type)) return false; // if no properties provided, ignore the type entirely if (this.Ignores[type].Count == 0) return true; return this.Ignores[type].Contains(propertyName); } /// &lt;summary&gt; /// The decision logic goes here /// &lt;/summary&gt; /// &lt;param name="member"&gt;&lt;/param&gt; /// &lt;param name="memberSerialization"&gt;&lt;/param&gt; /// &lt;returns&gt;&lt;/returns&gt; protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) { JsonProperty property = base.CreateProperty(member, memberSerialization); if (this.IsIgnored(property.DeclaringType, property.PropertyName) // need to check basetype as well for EF -- @per comment by user576838 || this.IsIgnored(property.DeclaringType.BaseType, property.PropertyName)) { property.ShouldSerialize = instance =&gt; { return false; }; } return property; } } </code></pre> <hr> <p>And usage:</p> <pre><code>var jsonResolver = new IgnorableSerializerContractResolver(); // ignore single property jsonResolver.Ignore(typeof(Company), "WebSites"); // ignore single datatype jsonResolver.Ignore(typeof(System.Data.Objects.DataClasses.EntityObject)); var jsonSettings = new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore, ContractResolver = jsonResolver }; </code></pre>