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 |