json-canonicalizer/JsonCanonicalizer/Program.cs
2026-06-23 13:36:13 +03:00

41 lines
1.2 KiB
C#

using System.Text.Json;
namespace JsonCanonicalizer
{
class Program
{
static int Main(string[] args)
{
try
{
using var inputStream = Console.OpenStandardInput();
using var doc = JsonDocument.Parse(inputStream);
var writerOptions = new JsonWriterOptions
{
Indented = true,
Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping
};
using var outputStream = Console.OpenStandardOutput();
using var writer = new Utf8JsonWriter(outputStream, writerOptions);
BL.Canonicalizer.WriteSorted(writer, doc.RootElement);
writer.Flush();
Console.Out.WriteLine();
return 0;
}
catch (JsonException ex)
{
Console.Error.WriteLine($"Invalid JSON: {ex.Message}");
return 1;
}
catch (Exception ex)
{
Console.Error.WriteLine($"Error: {ex.Message}");
return 1;
}
}
}
}