Json.NET offers many features not found in the JavaScriptSerializer and DataContractSerializer that come with .NET.

# Feature Comparison

| Json.NET | DataContractJsonSerializer | JavaScriptSerializer
Supports JSON |  |  |
Supports BSON |  |  |
Supports JSON Schema |  |  |
Supports .NET 2.0 |  |  |
Supports .NET 3.5 |  |  |
Supports .NET 4.0 |  |  |
Supports Silverlight |  |  |
Supports Windows Phone |  |  |
Supports WinRT |  |  |
Open Source |  |  |
MIT License |  |  |
LINQ to JSON |  |  |
Thread Safe |  |  |
XPath-like JSON query syntax |  |  |
Indented JSON support |  |  |
Efficient dictionary serialization http://stackoverflow.com/questions/1207731/how-can-i-deserialize-json-to-a-simple-dictionarystring-string-in-asp-net _blank |  |  |
Nonsensical dictionary serialization http://stackoverflow.com/questions/4559991/any-way-to-make-datacontractjsonserializer-serialize-dictionaries-properly _blank |  |  |
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 |  |  |
Serailizes Entity Framework |  |  |
Serializes nHibernate |  |  |
Case-insensitive property deserialization |  |  |

# Benchmarks

Json.NET Performance