first pass at adding required changes
diff --git a/src/ProtocolBuffers.Test/TestWriterFormatJson.cs b/src/ProtocolBuffers.Test/TestWriterFormatJson.cs
index 3f534fc..341f0b3 100644
--- a/src/ProtocolBuffers.Test/TestWriterFormatJson.cs
+++ b/src/ProtocolBuffers.Test/TestWriterFormatJson.cs
@@ -10,6 +10,70 @@
     [TestFixture]

     public class TestWriterFormatJson

     {

+        [Test]

+        public void Example_FromJson()

+        {

+            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();

+

+            builder.MergeFromJson(@"{""valid"":true}");

+            

+            TestXmlMessage message = builder.Build();

+            Assert.AreEqual(true, message.Valid);

+        }

+

+        [Test]

+        public void Example_ToJson()

+        {

+            TestXmlMessage message = 

+                TestXmlMessage.CreateBuilder()

+                .SetValid(true)

+                .Build();

+

+            string json = message.ToJson();

+

+            Assert.AreEqual(@"{""valid"":true}", json);

+        }

+

+        [Test]

+        public void Example_WriteJsonUsingICodedOutputStream()

+        {

+            TestXmlMessage message =

+                TestXmlMessage.CreateBuilder()

+                .SetValid(true)

+                .Build();

+

+            using (TextWriter output = new StringWriter())

+            using (AbstractWriter writer = JsonFormatWriter.CreateInstance(output))

+            {

+                writer.StartMessage();      //manually begin the message, output is '{'

+                

+                writer.Flush();

+                Assert.AreEqual("{", output.ToString());

+

+                ICodedOutputStream stream = writer;

+                message.WriteTo(stream);    //write the message normally

+

+                writer.Flush();

+                Assert.AreEqual(@"{""valid"":true", output.ToString());

+

+                writer.EndMessage();        //manually write the end message '}'

+                Assert.AreEqual(@"{""valid"":true}", output.ToString());

+            }

+        }

+

+        [Test]

+        public void Example_ReadJsonUsingICodedInputStream()

+        {

+            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();

+            AbstractReader reader = JsonFormatReader.CreateInstance(@"{""valid"":true}");

+

+            AbstractReader stream = reader.ReadStartMessage();  //manually read the begin the message '{'

+

+            builder.MergeFrom(stream);  //write the message normally

+

+            stream.ReadEndMessage();    //manually read the end message '}'

+        }

+

         protected string Content;

         [System.Diagnostics.DebuggerNonUserCode]

         protected void FormatterAssert<TMessage>(TMessage message, params string[] expecting) where TMessage : IMessageLite