使用 Newton.Json 进行 Json 序列化。
要应用什么 JsonSerializerSettings ,当我必须将具有属性的对象 Json 序列化为字节数组,然后以十六进制格式显示字节数组时..
例如
class A
{
public int X {get;set;}
public byte[] Y {get;set;}
}
当我将 A 序列化为 json 时,我没有得到 Y 的值,因为我已经设置了 ... byte[] 的输出应该是十六进制的
最佳答案
var json = JsonConvert.SerializeObject(new MyTestClass());
public class MyTestClass
{
public string s = "iiiii";
[JsonConverter(typeof(ByteArrayConvertor))]
public byte[] buf = new byte[] {1,2,3,4,5};
}
public class ByteArrayConvertor : Newtonsoft.Json.JsonConverter
{
public override bool CanConvert(Type objectType)
{
return objectType==typeof(byte[]);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
throw new NotImplementedException();
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
byte[] arr = (byte[])value;
writer.WriteRaw(BitConverter.ToString(arr).Replace("-", ""));
}
}
关于c# - Newton Soft Json JsonSerializerSettings 对象的属性为字节数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11829035/