C#中Newtonsoft能禁止将字节数组转成basic64字符串吗
我现在用Newtonsoft将对象转成json字符串,如果对象中有字节数组,转出来的结果就是个basic64字符串,比如byte[] arr = new byte[10],转出来就是AAAAAAAAAAAAAA==,有没有什么办法能禁止这种格式,将其改成和其他数组一样的[0,0,0,0,0,0,0,0,0,0]这类的形式
回答
可以自己写一个自定义序列化, 大概就是这样子
new JsonSerializerSettings().Converters.add(new myByteConverter())
class myByteConverter: Newtonsoft.Json.Converters.CustomCreationConverter<byte[]>{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteStartArray();
(value as byte[]).Each(b=>writer.WriteValue(b))
writer.WriteEndArray();
}
}