forked from urbrato/json-canonicalizer
41 lines
1.2 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
} |