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

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.