Json.NET
Json.NET is a popular high-performance JSON framework for .NET
Features
- Flexible JSON serializer for converting between .NET objects and JSON
- LINQ to JSON for manually reading and writing JSON
- High performance, faster than .NET's built-in JSON serializers
- Write indented, easy to read JSON
- Convert JSON to and from XML
- Supports .NET 2, .NET 3.5, .NET 4, Silverlight and Windows Phone
The serializer is a good choice when the JSON you are reading or writing maps closely to a .NET class.
LINQ to JSON is good for situations where you are only interested in getting values from JSON, you don't have a class to serialize or deserialize to, or the JSON is radically different from your class and you need to manually read and write from your objects.
Download Json.NET from CodePlex or install using
NuGet

Documentation
Find guides for getting started and comprehensive API Documentation
here.
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 |
 |
 |
 |
| Open Source |
 |
 |
 |
| LINQ to JSON |
 |
 |
 |
Indented JSON support
|
 |
 |
 |
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
|
 |
 |
 |
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
|
 |
 |
 |
Serializes .NET 4.0 dynamic objects
|
 |
 |
 |
Serializes ISerializable objects
|
 |
 |
 |
| Supports serializing enums to their text name |
 |
 |
 |
| Supports JSON recursion limit |
 |
 |
 |
| 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 |
 |
 |
 |
| Case-insensitive property deserialization |
 |
 |
 |
XPath like JSON query syntax
|
 |
 |
 |
This list is work in progress. Post to the discussion forum if you see anything that is missing or incorrect.
My Blog
My blog can be found at http://james.newtonking.com where I post news and updates about Json.NET.
My Twitter
My twitter account can be found at @JamesNK
Donate
Json.NET is a free open source project that I have developed in my personal time. I really appreciate your feedback and support for Json.NET and its future development.
