Json.NET
Json.NET is a popular high-performance JSON framework for .NET
Features
-Flexible JSON serializer to convert .NET objects to JSON and back again
-LINQ to JSON for manually reading and writing JSON
-High performance, faster than .NET's built-in JSON serializers
-Writes indented, easy to read JSON
-Convert JSON to and from XML
-Supports Silverlight and Windows Phone
The JSON serializer is a good choice when the JSON you are reading or writing maps closely to a .NET class. The serializer automatically reads and writes JSON for the 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.
LINQ to JSON allows you to easily read, create and modify JSON in .NET.
NuGet
Download Json.NET from CodePlex or install using NuGet

Documentation
Find guides for getting started and comprehensive API Documentation at
http://james.newtonking.com/projects/json/help/
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.

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
|
 |
 |
 |
Deserializes IList, IEnumerable, ICollection, IDictionary properties
|
 |
 |
 |
Serializes circular references
|
 |
 |
 |
Serialize objects by reference
|
 |
 |
 |
Deserialize polymorphic properties and collections
|
 |
 |
 |
Excludes null values when serializing
|
 |
 |
 |
| Supports including type names in JSON |
 |
 |
 |
Supports SerializationBinder
|
 |
 |
 |
Supports conditional property serialization
|
 |
 |
 |
Includes line number information in errors
|
 |
 |
 |
Converts XML to JSON and JSON to XML
|
 |
 |
 |
JSON Schema validation
|
 |
 |
 |
| JSON Schema from type generation |
 |
 |
 |
Camel case JSON property names
|
 |
 |
 |
Supports non-default constructors
|
 |
 |
 |
Serialization error handling
|
 |
 |
 |
Supports populating an existing object
|
 |
 |
 |
Serializes byte arrays as base64 text
|
 |
 |
 |
Serializes .NET 4.0 dynamic objects
|
 |
 |
 |
Serializes ISerializable objects
|
 |
 |
 |
| Supports serializing enums to their text name |
 |
 |
 |
| 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 |
 |
 |
 |
| Override type serialization |
 |
 |
 |
| Support OnDeserialized, OnSerializing, OnSerialized and OnDeserializing attributes |
 |
 |
 |
| Support serializing private properties |
 |
 |
 |
| DataMember attribute support |
 |
 |
 |
| MetdataType attribute support |
 |
 |
 |
| DefaultValue attribute support |
 |
 |
 |
| Serializes DataSets and DataTables |
 |
 |
 |