广告
返回顶部
首页 > 资讯 > 后端开发 > Python >@JsonSerialize不起作用的解决方案
  • 566
分享到

@JsonSerialize不起作用的解决方案

2024-04-02 19:04:59 566人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录@JSONSerialize不起作用在项目中 当字段实体类为Long类型时但是这里有个小坑@jsonSerialize正确使用1. 写一个负责转换的类2. 在实体类上需要装换的字

@JsonSerialize不起作用

在项目中 当字段实体类为Long类型时

如果Long值超过前端js显示的长度范围时会导致前端回显错误

此时我们想到的解决方案是将Long值返回给前端时转为String,

但是我们又不想变更字段的类型,当然我们也不想额外添加新的字段。

这个时候我们可以用@JsonSerialize,在Json序列化的时候把Long自动转为String,

但是这里有个小坑

被转换的字段必须是包装类类型,否则会转换失败。


@JsonSerialize(using = ToStringSerializer.class)
private Long parentId;    //转化成功

@JsonSerialize(using = ToStringSerializer.class)
private long parentId;    //转化失败

@JsonSerialize正确使用

实际开发中,我们一定遇到过这样的问题:前端显示和后台存储数据单位不统一,而且各有各自的理由,统一不了,那就只能由后端转换。

每次返回给前端时再转换一遍,返回给前端的json数据,在后端里定义的往往是一个对象,如何做到优雅的转换呢?只需两步操作:

1. 写一个负责转换的类

里面写好规则


 public class MySerializerUtils extends JsonSerializer<Integer> {
    @Override
    public void serialize(Integer status, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws ioException, JsonProcessingException {
        String statusStr = "";
         switch (status) {
             case 0:
                 statusStr = "新建状态";
                 break;
             case 1:
                statusStr = "就绪状态";
                 break;
             case 2:
                 statusStr = "运行状态";
                 break;
             case 3:
                 statusStr = "阻塞和唤醒线程";
                 break;
             case 4:
                statusStr = " 死亡状态";
               break;
             default:
                 statusStr = "状态信息不符合";
         }
         jsonGenerator.writeString(statusStr);
     }
 }

2. 在实体类上需要装换的字段上加上注解



@JsonSerialize(using = MySerializerUtils.class)
private int status;

注:@JsonSerialize注解,主要应用于数据转换,该注解作用在该属性的getter()方法上。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: @JsonSerialize不起作用的解决方案

本文链接: https://www.lsjlt.com/news/154368.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • @JsonSerialize不起作用的解决方案
    目录@JsonSerialize不起作用在项目中 当字段实体类为Long类型时但是这里有个小坑@JsonSerialize正确使用1. 写一个负责转换的类2. 在实体类上需要装换的字...
    99+
    2022-11-12
  • spring boot ${}占位符不起作用的解决方案
    spring boot ${}占位符不起作用 问题: 在 pom.xml 文件里定义好属性标签,然后在 properties或者xml 中使用${key}引用,打包之后就会自动替换掉...
    99+
    2022-11-12
  • vue样式叠层z-index不起作用的解决方案
    目录z-index不起作用z-index失效的原因vue element 弹框样式叠层问题 z-index不起作用 问题:当点击出现element弹框时,与当前的页面出现叠层问题(使...
    99+
    2022-11-13
  • jquery data不起作用的解决方法
    小编给大家分享一下jquery data不起作用的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2022-10-19
  • CSS样式不起作用的解决方法
    这篇文章主要介绍CSS样式不起作用的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!浏览器缓存问题如果你反复检查认为代码没有问题,那么可能是浏览器缓存的问题。在排查前先试一下清除浏览器缓存,重启浏览器或者换个浏...
    99+
    2023-06-08
  • CentOS下.htaccess不起作用的解决方法
    结果点击一个链接直接404 Not Found。悲剧,看来Apache的Rewrite部分有问题了,完全无视掉了.htaccess文件!经过检查Apache的模块,发现Rewrite...
    99+
    2022-11-21
    .htaccess 不起作用
  • css中top不起作用的解决方法
    这篇文章主要介绍css中top不起作用的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!css top不起作用是因为“position”属性的值为“static”,那么设置“top”属性就不会产生任何效果,其解...
    99+
    2023-06-14
  • PHP中ini_set不起作用的解决方法
    这篇文章将为大家详细讲解有关PHP中ini_set不起作用的解决方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP ini_set不起作用的解决办法:1、修改htaccess文件;2、在httpd....
    99+
    2023-06-22
  • global中php不起作用的解决方法
    小编给大家分享一下global中php不起作用的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php global不起作用的解决办法:1、减少多层次的in...
    99+
    2023-06-08
  • linux配置php.ini不起作用的解决方法
    这篇文章主要介绍linux配置php.ini不起作用的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!linux配置php.ini不起作用的解决办法:1、将php.ini放到指定目录下;2、开启命令时使用“-c...
    99+
    2023-06-15
  • string的replace方法不起作用怎么解决
    如果string的replace方法不起作用,可能是由于以下几个原因: 传入的参数有误:确保你正确地传入了要替换的字符串和替换后...
    99+
    2023-10-25
    string
  • SpringBoot Shiro 权限注解不起作用的解决方法
    目录问题如下:解决方法如下:最近在学习springboot结合shiro做权限管理时碰到一个问题。 问题如下: 我在userRealm中的doGetAuthorizationInfo...
    99+
    2022-11-12
  • Spring AOP对嵌套方法不起作用的解决
    目录Spring AOP对嵌套方法不起作用要解决这个问题Spring AOP、嵌套调用失效及解决加入注解获取当前代理的接口需要嵌套调用的Service实现它调用的时候改写代码Spri...
    99+
    2022-11-12
  • jquery中show()方法不起作用怎么解决
    这篇“jquery中show()方法不起作用怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看...
    99+
    2022-10-19
  • Spring AOP对嵌套方法不起作用的解决方法
    本篇文章为大家展示了Spring AOP对嵌套方法不起作用的解决方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Spring AOP对嵌套方法不起作用今天在调研系统操作记录日志时,好多教...
    99+
    2023-06-22
  • 解决Lombok注解不起作用的问题
    Lombok注解不起作用 场景: 减少实体类中如Getter,Setter方法的书写 原因: lombok是一个第三方插件,我们使用时需要进行两个步骤(两个步骤缺一不可): 1:引入...
    99+
    2022-11-12
  • 解决spring.thymeleaf.cache=false不起作用的问题
    目录spring.thymeleaf.cache=false不起作用thymeleaf缓存关闭spring.thymeleaf.cache=false不起作用 配置是清除缓存,实现热...
    99+
    2022-11-13
  • 解决swagger2中@ApiResponse的response不起作用
    目录swagger可以生成比较友好的在线API说明文档我们用的是swagger2swagger可以生成比较友好的在线API说明文档 友好的API说明重要性不言而喻,因为所谓API,肯...
    99+
    2022-11-13
  • async注解不起作用如何解决
    如果使用的是Python 3.7及以上版本,需要确保使用的函数是异步函数,即使用了`async def`关键字定义的函数。另外,需要...
    99+
    2023-09-16
    async
  • lombok注解不起作用如何解决
    如果Lombok注解不起作用,可能有以下几种解决方法: 确认是否安装了Lombok插件:在使用Lombok注解之前,确保已经安装...
    99+
    2023-10-28
    lombok
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作