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; }
相关推荐
报错小能手几秒前
ios开发方向——swift并发进阶核心 async/await 详解
开发语言·ios·swift
青花瓷6 分钟前
采用QT下MingW编译opencv4.8.1
开发语言·qt
lifallen8 分钟前
Flink Agent:RunnerContext 注入与装配演进分析
java·大数据·人工智能·语言模型·flink
爱丽_9 分钟前
Tomcat 从 Socket 到 Servlet:机制主线、参数调优与线上排障(实战)
java·servlet·tomcat
小江的记录本13 分钟前
【JEECG Boot】 JEECG Boot——数据字典管理 系统性知识体系全解析
java·前端·spring boot·后端·spring·spring cloud·mybatis
卖男孩的小火柴.15 分钟前
java内置方法总结及基础算法
java·算法
赫瑞15 分钟前
Java中的日期类
java·开发语言
吕司17 分钟前
Linux线程同步
linux·服务器·开发语言
程序员木圭18 分钟前
07-数组入门必看!Java数组的内存分析02
java·后端
前端技术19 分钟前
ArkTS第三章:声明式UI开发实战
java·前端·人工智能·python·华为·鸿蒙