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; }
相关推荐
XiYang-DING31 分钟前
【Java SE】数据类型、变量、类型转换、运算符以及程序逻辑控制
java·开发语言
闻哥43 分钟前
Redis 避坑指南:从命令到主从的全链路踩坑实录
java·数据库·redis·缓存·面试·springboot
Jinkxs1 小时前
基于 Java 的消息队列选型年度总结:RabbitMQ、RocketMQ、Kafka 实战对比
java·kafka·java-rocketmq·java-rabbitmq
独自破碎E1 小时前
JDK版本的区别
java·开发语言
谦宸、墨白1 小时前
从零开始学C++:二叉树进阶
开发语言·数据结构·c++
建群新人小猿2 小时前
陀螺匠企业助手—个人简历
android·大数据·开发语言·前端·数据库
悟空码字2 小时前
SpringBoot深度整合高德地图,构建高性能位置服务
java·springboot·高德地图·编程技术·后端开发
千金裘换酒2 小时前
栈和队列定义及常用语法 LeetCode
java·开发语言
be or not to be2 小时前
JavaScript 对象与原型
开发语言·javascript·ecmascript
0x532 小时前
JAVA|智能无人机平台(二)
java·开发语言·无人机