Bit late to this party, but you can beautify (or minify) Json without deserialization using Json.NET:
JToken parsedJson = JToken.Parse(jsonString);
var beautified = parsedJson.ToString(Formatting.Indented);
var minified = parsedJson.ToString(Formatting.None);
Edit: following up on the discussion in the comments about performance, I measured using BenchMark.Net and there is an extra allocation cost using JToken.Parse, and a very small increase in time taken:

Benchmark code