using System.Collections.Generic;
using System.Text.Json.Serialization;
public static void Main()
string serialized = JsonSerializer.Serialize(arr);
Console.WriteLine(serialized);
JsonSerializerOptions options = new() { Converters = { new ByteArrayConverter() } };
serialized = JsonSerializer.Serialize(arr, options);
Console.WriteLine(serialized);
arr = JsonSerializer.Deserialize<byte[]>(serialized, options);
Console.WriteLine(serialized == JsonSerializer.Serialize(arr, options));
public class ByteArrayConverter : JsonConverter<byte[]>
public override byte[] Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
return JsonSerializer.Deserialize<List<byte>>(ref reader, options)?.ToArray();
public override void Write(Utf8JsonWriter writer, byte[] value, JsonSerializerOptions options)
writer.WriteStartArray();
for (int i = 0; i < value.Length; i++)
writer.WriteNumberValue(value[i]);