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; }
相关推荐
NE_STOP9 小时前
Vide Coding--AI编程工具的选择
java
LDR0069 小时前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术9 小时前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园10 小时前
C++20 Modules 模块详解
java·开发语言·spring
程序员黑豆10 小时前
JDK 下载安装与配置详细教程
java·前端·ai编程
小宇宙Zz10 小时前
Maven依赖冲突
java·服务器·maven
swordbob10 小时前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
咖啡八杯10 小时前
GoF设计模式——享元模式
java·spring·设计模式·享元模式
十五喵源码网11 小时前
基于springboot2+vue2的租房管理系统
java·毕业设计·springboot·论文笔记
摇滚侠11 小时前
IDEA 创建 Java 项目 手动整合 SSM 框架
java·ide·intellij-idea