How can an existing json string be cleaned up/minfied? I've seen regexes being used. Any other (maybe more efficient) approach?
You can just serialize and deserialize non-minified JSON, you'll get a minified version at the end of it via most serializers.
var json = " { \"title\": \"Non-minified JSON string\" } ";
var doc = JsonDocument.Parse(json);
var minified = JsonSerializer.Serialize(doc);
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.
Very basic extension method using System.Text.Json
using System.Text.Json;
using static System.Text.Json.JsonSerializer;
public static class JsonExtensions
{
public static string Minify(this string json)
=> Serialize(Deserialize<JsonDocument>(json));
}
This takes advantages of default value of JsonSerializerOptions
JsonSerializerOptions.WriteIndented = false
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With