How to pretty print with System.Json?

9.4k Views Asked by At

Using the new System.Json from 4.5 or the equivalent System.Json for 4.0 from Nuget how do you format the output so it is indented ans spaced in a more readable form?

So this

dynamic jsonObj = new JsonObject();
jsonObj.firstName = "John";
jsonObj.lastName = "Smith";
Debug.WriteLine((string)jsonObj.ToString());

Outputs this

{"firstName":"John","lastName":"Smith"}

When I want this

{
  "firstName": "John",
  "lastName": "Smith"
}
2

There are 2 best solutions below

0
Mechtroid On BEST ANSWER

For future reference, the System.Json library in .NET 4.5 (And 4.5 only, not Silverlight) has the JsonSaveOptions enumerator, so you can call ToString(JsonSaveOptions.EnableIndent) for pretty printed Json.

0
richardtallent On

Unlike with XML, there's there are no options for this in the built-in library.

Mark Rogers wrote a prettifier, available here:

http://www.markdavidrogers.com/json-pretty-printerbeautifier-library-for-net/