Popular high-performance JSON framework for .NET
Json.NET is open source under the MIT license and is free for commercial use.
Json.NET is a personal open source project. Started in 2006, thousands of hours have been invested in refining and tuning Json.NET with the goal of making it not just the best JSON serializer for .NET but the best serializer for any computer language.
If Json.NET has been helpful to you, consider donating.
Thanks to Object.NET for use of the json.net domain name, AppVeyor for a CI service, and Allie Brosh for all the things.
| 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 | ![]() |
![]() |
![]() |
| 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 | ![]() |
![]() |
![]() |
| 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 | ![]() |
![]() |
![]() |
| 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 | ![]() |
![]() |
![]() |
| Deserializes anonymous types | ![]() |
![]() |
![]() |
| Opt-in property serialization | ![]() |
![]() |
![]() |
| Opt-out property 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 | ![]() |
![]() |
![]() |
| Diagnostic tracing | ![]() |
![]() |
![]() |
| Serializes read-only and immutable collections | ![]() |
![]() |
![]() |
| Supports serialization extension data | ![]() |
![]() |
![]() |
| Serializes F# discriminated unions | ![]() |
![]() |
![]() |
| Serializes F# collections | ![]() |
![]() |
![]() |
| Supports merging JSON | ![]() |
![]() |
![]() |