Работа с потоками внесена в бизнес-логику
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;
|
namespace JsonCanonicalizer.BL;
|
||||||
|
|
||||||
public class Canonicalizer
|
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)
|
public static void WriteSorted(Utf8JsonWriter writer, JsonElement element)
|
||||||
{
|
{
|
||||||
switch (element.ValueKind)
|
switch (element.ValueKind)
|
||||||
|
|||||||
@ -1,27 +1,18 @@
|
|||||||
using System.Text.Json;
|
using JsonCanonicalizer.BL;
|
||||||
|
using System.Text.Json;
|
||||||
|
|
||||||
namespace JsonCanonicalizer
|
namespace JsonCanonicalizer
|
||||||
{
|
{
|
||||||
class Program
|
class Program
|
||||||
{
|
{
|
||||||
static int Main(string[] args)
|
static int Main(string[] _)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using var inputStream = Console.OpenStandardInput();
|
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 outputStream = Console.OpenStandardOutput();
|
||||||
using var writer = new Utf8JsonWriter(outputStream, writerOptions);
|
|
||||||
|
|
||||||
BL.Canonicalizer.WriteSorted(writer, doc.RootElement);
|
Canonicalizer.Canonicalize(inputStream, outputStream);
|
||||||
writer.Flush();
|
|
||||||
|
|
||||||
Console.Out.WriteLine();
|
Console.Out.WriteLine();
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user