From d58147a9b20772af1c9967bd12f0fa19f7b44593 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D0=B5=D1=80=D1=88=D0=BC=D0=B0=D0=BD=20=D0=90=D0=BD?= =?UTF-8?q?=D1=82=D0=BE=D0=BD=20=D0=9B=D0=B5=D0=B9=D0=B1=D0=BE=D0=B2=D0=B8?= =?UTF-8?q?=D1=87?= Date: Mon, 3 Aug 2026 12:25:05 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=20=D1=81?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=82=D0=BE=D0=BA=D0=B0=D0=BC=D0=B8=20=D0=B2?= =?UTF-8?q?=D0=BD=D0=B5=D1=81=D0=B5=D0=BD=D0=B0=20=D0=B2=20=D0=B1=D0=B8?= =?UTF-8?q?=D0=B7=D0=BD=D0=B5=D1=81-=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JsonCanonicalizer.BL/Canonicalizer.cs | 19 +++++++++++++++++-- JsonCanonicalizer/Program.cs | 17 ++++------------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/JsonCanonicalizer.BL/Canonicalizer.cs b/JsonCanonicalizer.BL/Canonicalizer.cs index 14f6a69..c09fb3e 100644 --- a/JsonCanonicalizer.BL/Canonicalizer.cs +++ b/JsonCanonicalizer.BL/Canonicalizer.cs @@ -1,10 +1,25 @@ -using System.Runtime.Serialization; -using System.Text.Json; +using System.Text.Json; namespace JsonCanonicalizer.BL; public class Canonicalizer { + public static void Canonicalize(Stream from, Stream to) + { + using var doc = JsonDocument.Parse(from); + + var writerOptions = new JsonWriterOptions + { + Indented = true, + Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping + }; + + using var writer = new Utf8JsonWriter(to, writerOptions); + + WriteSorted(writer, doc.RootElement); + writer.Flush(); + } + public static void WriteSorted(Utf8JsonWriter writer, JsonElement element) { switch (element.ValueKind) diff --git a/JsonCanonicalizer/Program.cs b/JsonCanonicalizer/Program.cs index 3273ff0..c636e4a 100644 --- a/JsonCanonicalizer/Program.cs +++ b/JsonCanonicalizer/Program.cs @@ -1,27 +1,18 @@ -using System.Text.Json; +using JsonCanonicalizer.BL; +using System.Text.Json; namespace JsonCanonicalizer { class Program { - static int Main(string[] args) + static int Main(string[] _) { 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(); + Canonicalizer.Canonicalize(inputStream, outputStream); Console.Out.WriteLine(); return 0;