.netjsonminify

Minify a json string using .NET


How can an existing json string be cleaned up/minfied? I've seen regexes being used. Any other (maybe more efficient) approach?


Solution

  • You can just serialize and deserialize non-minified JSON, you'll get a minified version at the end of it via most serializers.

    Using Built-In System.Text.Json

    var json = "  {  \"title\": \"Non-minified JSON string\"  }  ";
    var doc = JsonDocument.Parse(json);
    var minified = JsonSerializer.Serialize(doc);
    

    Using Newtonsoft.Json

    Install-Package Newtonsoft.Json
    

    Just parse it and then serialize back into JSON:

    var json = "  {  title: \"Non-minified JSON string\"  }  ";
    var obj = JsonConvert.DeserializeObject(json);
    jsonString = JsonConvert.SerializeObject(obj);
    

    SerializeObject(obj, Formatting.None) method accepts Formatting enum as a second parameter. You can always choose if you want Formatting.Indented or Formatting.None.