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 .NET 2, .NET 3.5, .NET 4, 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.

See a comparison of Json.NET to .NET's built in serializers here.

NuGet

Download Json.NET from CodePlex or install using NuGet

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.

Paypal Donate

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
     
Support serializing objects by reference
     
Deserializes polymorphic properties and collections
     
Supports including type name with JSON      
Globally customize serialization process      
Supports excluding null values when serializing
     
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      
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      

Last edited Feb 19, 2012 at 10:05 AM by JamesNK, version 41