Extension method for outputting formatted JSON in LINQPad

Very simple, but a handy way of viewing nicely-formatted JSON in LINQPad:

clip_image002

I use as it does indented formatting, and. To add as an extension,, add a reference to Newtonsoft.Json.dll to your “My Extensions” query and add the following code to your MyExtensions class:

       public static object DumpJson(this object value, string description = null)

       {

              return GetJsonDumpTarget(value).Dump(description);

       }    

       public static object DumpJson(this object value, string description, int depth)

       {

              return GetJsonDumpTarget(value).Dump(description, depth);

       }    

       public static object DumpJson(this object value, string description, bool toDataGrid)

       {

              return GetJsonDumpTarget(value).Dump(description, toDataGrid);

       }    

       private static object GetJsonDumpTarget(object value)

       {

              object dumpTarget = value;

              //if this is a string that contains a JSON object, do a round-trip serialization to format it:

              var stringValue = value as string;

              if (stringValue!= null)

              {

                     if (stringValue.Trim.StartsWith("{"))

                     {

                           var obj = JsonConvert.DeserializeObject(stringValue);

                           dumpTarget = JsonConvert.SerializeObject(obj, Newtonsoft.Json.Formatting.Indented);

                     }

                     else

                     {

                           dumpTarget = stringValue;

                     }

              }

              else

              {

                     dumpTarget = JsonConvert.SerializeObject(value, Newtonsoft.Json.Formatting.Indented);

              }

              return dumpTarget;

       }

Call with .DumpJson on any object, and it will serialize to formatted JSON and output it. If you pass a string which is already JSON, it round-trip serializes it to get the formatted version (including converting WCF-formatted JSON dates to ISO 8601).

Makes for a very handy testing rig for REST services.

This article is part of the GWB Archives. Original Author: Elton Stoneman

New on Geeks with Blogs