C# newtonsoft序列化将long类型转化为字符串

cs 复制代码
/// <summary>
/// 转化为json的时候long类型转为string
/// </summary>
public class LongJsonConverter: JsonConverter
{
    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        try
        {
            return reader.Value.ObjToLong();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    public override bool CanConvert(Type objectType)
    {
        return true;
    }

    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        if (value == null)
        {
            writer.WriteNull();
            return;
        }
        string sValue = value.ToString();
        writer.WriteValue(sValue);
    }
}

全局使用

cs 复制代码
services.AddControllers(options =>
{
	//添加过滤器
    //options.Filters.Add(new AdminIpFilter(Configuration));
})
 .AddNewtonsoftJson(options =>
 {
     options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
     options.SerializerSettings.Converters.Add(new Common.NewtonsoftJsonConvert.LongNullConverter());
     //修改属性名称的序列化方式,首字母小写
     options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
     //修改时间的序列化方式
     options.SerializerSettings.Converters.Add(new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" });
     //看这里
     options.SerializerSettings.Converters.Add(new LongJsonConverter());
 });

针对某个属性使用

cs 复制代码
[JsonConverter(typeof(LongJsonConverter))]
public long? Id { get; set; }
相关推荐
lcu111几秒前
Java 学习25:break 和 continue 语句
java
Icoolkj3 分钟前
手机物理内存云共享—技术挑战与突破路径分析
java·服务器·智能手机
雨中散步撒哈拉4 分钟前
14、做中学 | 初二上期 Golang集合Map
开发语言·后端·golang
Hello.Reader14 分钟前
Flink DataStream API 基础构件DataStream × Partitioning × ProcessFunction
java·大数据·flink
今日说"法"15 分钟前
Rust 内存泄漏的检测与防范:超越安全的实践指南
java·安全·rust
欠你一个bug15 分钟前
Java设计模式应用--装饰器模式
java·设计模式·装饰器模式
m0_748240254 小时前
Windows编程+使用C++编写EXE加壳程序
开发语言·c++·windows
兮兮能吃能睡6 小时前
R语言模型分析(一)(1)
开发语言·r语言
兔兔爱学习兔兔爱学习6 小时前
Spring Al学习7:ImageModel
java·学习·spring
lang201509287 小时前
Spring远程调用与Web服务全解析
java·前端·spring