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 |
|
|
|
