码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 随手笔记-Jackson -> @JsonFormat -> 失真问题解决


    文章目录

      • 引言
      • 解决方法
        • 问题
        • 解决
      • JsonFormat
        • copy文档示例
      • 想看源码解析的点赞收藏, 这周末可以肝

    引言

    关于使用雪花算法作为主键id生成, 19位数return给前端出现数据失真, 导致id与数据库中不对应, 极有可能出现缓存穿透问题

    更多可参考github项目官网解决问题, 也可直接传送到Jackson文档
    在这里插入图片描述

    解决方法

    问题

    浏览器开发者模式看到的接口返回数据, 此ID为失真状态的value
    在这里插入图片描述
    postman中测试的接口真实ID为正确的value
    在这里插入图片描述
    数据库中对比下来
    在这里插入图片描述

    解决

    使用了@JsonFormat注解解决失真问题

    /**
     * DTO实体
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    官方文档这样对此做出解释
    在这里插入图片描述
    JsonFormat: 具有每种类型行为的一般注释;例如,可用于指定序列化日期/时间值时使用的格式

    JsonFormat

    JsonFormat主要还用于DTO格式化时间

    @JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”, locale = “zh”, timezone = “GMT+8”)
    
    • 1

    参数说明

    • pattern 指定转化的格式SSSZ(S指的是微秒,Z指时区),此处的pattern和java.text.SimpleDateFormat中的Time Patterns一致

    • locale主要指语言,如果中文的话,月份输出是五月,但是英文就是May,尤其是在反序列化的时候特别重要

    • timezone主要解决“8小时”问题

    copy文档示例

    Letter Date or Time Component Presentation Examples

    G Era designator Text AD
    y Year Year 1996; 96
    Y Week year Year 2009; 09
    M Month in year Month July; Jul; 07
    w Week in year Number 27
    W Week in month Number 2
    D Day in year Number 189
    d Day in month Number 10
    F Day of week in month Number 2
    E Day name in week Text Tuesday; Tue
    u Day number of week (1 = Monday, …, 7 = Sunday) Number 1
    a Am/pm marker Text PM
    H Hour in day (0-23) Number 0
    k Hour in day (1-24) Number 24
    K Hour in am/pm (0-11) Number 0
    h Hour in am/pm (1-12) Number 12
    m Minute in hour Number 30
    s Second in minute Number 55
    S Millisecond Number 978
    z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
    Z Time zone RFC 822 time zone -0800
    X Time zone ISO 8601 time zone -08; -0800; -08:00

    想看源码解析的点赞收藏, 这周末可以肝

  • 相关阅读:
    洋葱架构、三层架构及两者区别
    【SpringCloud学习05】Docker
    修改xml文件
    Spring及Spring boot 第四章-第二节 Spring声明式事务管理 解析@Transactional
    Bio初级通讯案例
    洛谷 P1306 斐波那契公约数 (矩阵快速幂, 辗转相除法)
    LeetCode8-字符串转换整数(atoi)
    C++ 中输入n行字符串 与 按空格字符分割
    树莓派从上天到入地(持续更新)
    Cheat Engine 修改器获取内存数据心路历程, THREADSTACK0 C# .NET VB 获取基址 CE修改器
  • 原文地址:https://blog.csdn.net/m0_49093968/article/details/125559981
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号