【问题标题】:Convert string property value to base64 on serialization For ASP.NET Core 3.0+在序列化时将字符串属性值转换为 base64 对于 ASP.NET Core 3.0+
【发布时间】:2021-07-04 14:09:54
【问题描述】:
【问题讨论】:
标签:
json
asp.net-core
serialization
base64
system.text.json
【解决方案1】:
创建以下custom JsonConverter<string>:
public class Base64EncodedStringConverter : JsonConverter<string>
{
public override string Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) =>
Encoding.UTF8.GetString(reader.GetBytesFromBase64());
public override void Write(Utf8JsonWriter writer, string value, JsonSerializerOptions options) =>
writer.WriteBase64StringValue(Encoding.UTF8.GetBytes(value));
}
然后将其应用于您的模型,如下所示:
public class MyFoo
{
public string Value1 { get; set; }
[System.Text.Json.Serialization.JsonConverter(typeof(Base64EncodedStringConverter))] // Fully qualified attribute name used for clarity
public string Value2 { get; set; }
}
注意事项:
演示小提琴here.