Работа с потоками внесена в бизнес-логику
This commit is contained in:
parent
73a35255af
commit
d58147a9b2
@ -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)
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user