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; }
相关推荐
Geoking.几秒前
【设计模式】中介者模式(Mediator)详解
java·设计模式·中介者模式
大猫和小黄1 分钟前
Java异常处理:从基础到SpringBoot实战解析
java·开发语言·spring boot·异常
半夏知半秋18 分钟前
kcp学习-通用的kcp lua绑定
服务器·开发语言·笔记·后端·学习
hero.fei20 分钟前
kaptcha 验证码生成工具在springboot中集成
java·spring boot·后端
mikelv0121 分钟前
实现返回树状结构小记
java·数据结构
Duang007_21 分钟前
【LeetCodeHot100 超详细Agent启发版本】两数之和 (Two Sum)
java·人工智能·python
色空大师28 分钟前
maven引入其他项目依赖爆红
java·maven
csbysj202036 分钟前
并查集路径压缩
开发语言
yangminlei1 小时前
深入理解Sentinel:分布式系统的流量守卫者
java
JavaEdge.1 小时前
java.io.IOException: Previous writer likely failed to write hdfs报错解决方案
java·开发语言·hdfs