用Record类的时候,声明成员很方便,但是想要用注解,要用下面这种方式:
和这种方式相同:
JsonConverter使用需要创建一个class 继承与JsonConverter<T>
class JsonDoubleCvt : JsonConverter<double>
{
public override double Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
return double.Parse(reader.GetString().TrimStart());
}
public override void Write(Utf8JsonWriter writer, double value, JsonSerializerOptions options)
{
writer.WriteStringValue(value.ToString());
}
}
Read 就是 从 网络、文件等等反序列化时的, return出去就行
Write 就是序列化时的,不用return
例如 获得的json为
{
"price":"12"
}
直接给model 赋值时就是str类型, 转换比较麻烦, 就可以加一个类型转换
public class tbd
{
[JsonConverter(typeof(JsonDoubleCvt))]
public double Price { get; set; }
}
标签:JsonConverter,return,C#,Attribute,class,Record,double,public From: https://www.cnblogs.com/znah/p/17707430.html