Geeks With Blogs

News
Elton Stoneman (@EltonStoneman) IT Consultant, integration specialist, @Microsoft MVP and @Pluralsight author.

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

clip_image002

I use Json.NET as it does indented formatting, and represents JSON dates properly. To add as an extension, download Json.NET, 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.

Posted on Friday, May 11, 2012 7:29 PM LINQPad , JSON | Back to top


Comments on this post: Extension method for outputting formatted JSON in LINQPad

# re: Extension method for outputting formatted JSON in LINQPad
Requesting Gravatar...
Linqpad has just released NuGet integration for premium memeber (http://forum.linqpad.net/discussion/42/nuget-integration), so coupling this with your extension it makes things so much easier. Might be worth a quick update to this.
Left by DaveShaw on May 15, 2012 9:23 PM

# re: Extension method for outputting formatted JSON in LINQPad
Requesting Gravatar...
please explain how to add your "My Extensions" class? I see it in the second tab in the screen shot. However I'm not sure of the other settings.

Thanks.
Left by Milo on Sep 11, 2012 2:45 PM

# re: Extension method for outputting formatted JSON in LINQPad
Requesting Gravatar...
Like many other extension methods, this is best method also. Thanks for such a nice and informative post regarding different software.
Left by kijiji saskatoon on Sep 30, 2012 7:52 PM

# re: Extension method for outputting formatted JSON in LINQPad
Requesting Gravatar...
Hide all information from conts. Bubbles,dimples,cat,*,???,%
Left by glenslaughter on Dec 24, 2012 3:26 AM

# re: Extension method for outputting formatted JSON in LINQPad
Requesting Gravatar...
We love this particularly great article on your website.more format plz?
Left by my polo on Apr 19, 2013 2:42 PM

Your comment:
 (will show your gravatar)
 


Copyright © Elton Stoneman | Powered by: GeeksWithBlogs.net | Join free