与
Sytem.Text.Json
字节数组(
byte[]
)将序列化为base64字符串。他们说他们不会支持
字节[]
在数组中序列化为数字数组
github issue
这里有一个自定义转换器,应该让你开始。也许你可以优化阅读一点,但这种方法所带来的性能冲击应该不会太坏。您可能想添加null和错误处理,但您已经明白了。
JsonSerializerOptions
. 请参阅
this docs page
public class ByteArrayConverter : JsonConverter<byte[]>
{
public override byte[] Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
short[] sByteArray = JsonSerializer.Deserialize<short[]>(ref reader);
byte[] value = new byte[sByteArray.Length];
for (int i = 0; i < sByteArray.Length; i++)
{
value[i] = (byte)sByteArray[i];
}
return value;
}
public override void Write(Utf8JsonWriter writer, byte[] value, JsonSerializerOptions options)
{
writer.WriteStartArray();
foreach (var val in value)
{
writer.WriteNumberValue(val);
}
writer.WriteEndArray();
}
}