Click or drag to resize

Json.NET vs .NET Serializers


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

Feature Comparison




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


Thread Safe

XPath-like JSON query syntax

Indented JSON support

Efficient dictionary serialization

Nonsensical dictionary serialization

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