Search code examples
c#.netformattingsystem.json

How to pretty print with System.Json?


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"
}

Solution

  • 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.