Json.NET vs .NET Serializers | 
Json.NET offers many features not found in the JavaScriptSerializer and DataContractSerializer that come with .NET.
Json.NET  | DataContractJsonSerializer  | JavaScriptSerializer  | |
|---|---|---|---|
Supports JSON  | 
  | 
  | 
  | 
Supports BSON  | 
  | 
  | 
  | 
Supports JSONPath  | 
  | 
  | 
  | 
Supports .NET 2.0  | 
  | 
  | 
  | 
Supports .NET 3.5  | 
  | 
  | 
  | 
Supports .NET 4.0  | 
  | 
  | 
  | 
Supports .NET 4.5  | 
  | 
  | 
  | 
Supports Silverlight  | 
  | 
  | 
  | 
Supports Windows Phone  | 
  | 
  | 
  | 
Supports Windows Store  | 
  | 
  | 
  | 
Supports Xamarin  | 
  | 
  | 
  | 
Open Source  | 
  | 
  | 
  | 
MIT License  | 
  | 
  | 
  | 
LINQ to JSON  | 
  | 
  | 
  | 
Thread Safe  | 
  | 
  | 
  | 
XPath-like JSON query syntax  | 
  | 
  | 
  | 
Indented JSON support  | 
  | 
  | 
  | 
  | 
  | 
  | |
  | 
  | 
  | |
Deserializes IList, IEnumerable, ICollection, IDictionary properties  | 
  | 
  | 
  | 
Serializes circular references  | 
  | 
  | 
  | 
Supports serializing objects by reference  | 
  | 
  | 
  | 
Deserializes polymorphic properties and collections  | 
  | 
  | 
  | 
Serializes and deserializes multidimensional arrays  | 
  | 
  | 
  | 
Supports including type names with JSON  | 
  | 
  | 
  | 
Globally customize serialization process  | 
  | 
  | 
  | 
Supports excluding null values when serializing  | 
  | 
  | 
  | 
Supports SerializationBinder  | 
  | 
  | 
  | 
Conditional property serialization  | 
  | 
  | 
  | 
Includes line number information in errors  | 
  | 
  | 
  | 
Converts XML to JSON and JSON to XML  | 
  | 
  | 
  | 
JSON Schema validation  | 
  | 
  | 
  | 
JSON Schema generation from .NET types  | 
  | 
  | 
  | 
Camel case JSON property names  | 
  | 
  | 
  | 
Non-default constructors support  | 
  | 
  | 
  | 
Serialization error handling  | 
  | 
  | 
  | 
Supports populating an existing object  | 
  | 
  | 
  | 
Efficiently serializes byte arrays as base64 text  | 
  | 
  | 
  | 
Handles NaN, Infinity, -Infinity and undefined  | 
  | 
  | 
  | 
Handles JavaScript constructors  | 
  | 
  | 
  | 
Serializes .NET 4.0 dynamic objects  | 
  | 
  | 
  | 
Serializes ISerializable objects  | 
  | 
  | 
  | 
Supports serializing enums to their text name  | 
  | 
  | 
  | 
JSON recursion limit support  | 
  | 
  | 
  | 
Attribute property name customization  | 
  | 
  | 
  | 
Attribute property order customization  | 
  | 
  | 
  | 
Attribute property required customization  | 
  | 
  | 
  | 
Supports ISO8601 dates  | 
  | 
  | 
  | 
Supports JavaScript constructor dates  | 
  | 
  | 
  | 
Supports Microsoft AJAX dates  | 
  | 
  | 
  | 
Unquoted property names support  | 
  | 
  | 
  | 
Raw JSON support  | 
  | 
  | 
  | 
Supports reading and writing comments  | 
  | 
  | 
  | 
Serializes anonymous types  | 
  | 
  | 
  | 
Deserializes anonymous types  | 
  | 
  | 
  | 
Opt-in mode serialization  | 
  | 
  | 
  | 
Opt-out mode serialization  | 
  | 
  | 
  | 
Field (Serializable) mode serialization  | 
  | 
  | 
  | 
Efficiently stream reading and writing JSON  | 
  | 
  | 
  | 
Single or double quote JSON content  | 
  | 
  | 
  | 
Supports overriding a type's serialization  | 
  | 
  | 
  | 
Supports OnDeserialized, OnSerializing, OnSerialized and OnDeserializing attributes  | 
  | 
  | 
  | 
Supports serializing private properties  | 
  | 
  | 
  | 
DataMember attribute support  | 
  | 
  | 
  | 
MetdataType attribute support  | 
  | 
  | 
  | 
DefaultValue attribute support  | 
  | 
  | 
  | 
Serializes DataSets and DataTables  | 
  | 
  | 
  | 
Serializes Entity Framework  | 
  | 
  | 
  | 
Serializes nHibernate  | 
  | 
  | 
  | 
Case-insensitive property deserialization  | 
  | 
  | 
  | 
Diagnostic tracing  | 
  | 
  | 
  | 
Serializes read-only and immutable collections  | 
  | 
  | 
  | 
Supports serialization extension data  | 
  | 
  | 
  | 
Serializes F# discriminated unions  | 
  | 
  | 
  | 
Serializes F# collections  | 
  | 
  | 
  | 
Supports merging JSON  | 
  | 
  | 
  | 
