Using Json.NET to Serialize objects

June 24, 2012 — 2 Comments

Json.NET is a popular high-performance JSON framework for .NET


  • 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, Windows Phone and Windows 8 Metro

Serialization Wrapper

The following is a wrapper I wrote to wrap boiler plate code and facilitate reuse.

public sealed class SerializerWrapper 
    readonly JsonSerializer serializer = new JsonSerializer();

    public void Serialize(Stream ms, object obj)
        var jsonTextWriter = new JsonTextWriter(new StreamWriter(ms));
        ms.Position = 0;

    public TType Deserialize<TType>(Stream ms)
        var jsonTextReader = new JsonTextReader(new StreamReader(ms));
        return serializer.Deserialize<TType>(jsonTextReader);

Using the SerializationWrapper

public class SerializationWrapperUnitTest {
    public class TestObject {
        public string Message { get; set; }
        public string By { get; set; }

    public void SerializeObject()
        var obj = new TestObject {
            By = "Alexandre Brisebois",
            Message = "This is a test Message" };

        var s = new SerializationWrapper();

        string serializedObject;

        using(var ms = new MemoryStream())
            s.Serialize(ms, obj);

            TextReader reader = new StreamReader(ms);

            serializedObject = reader.ReadToEnd();


Resulting JSON Object

{"Message":"This is a test Message","By":"Alexandre Brisebois"}

2 responses to Using Json.NET to Serialize objects


    How do you deal with special characters? Is there a library to reference when deserializing? Suppose in your example there are an extra pair of double-quotes like so, {“Message”:”This is a “test” Message”,”By”:”Alexandre Brisebois”}, could you deserialize it without writing a method to add back-slashes to it.
    I really do like your example though, especially the way you include your testing method!
    Thank you very much.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.