码农知识堂 - 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

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

  • 相关阅读:
    CSS字体属性
    算法模型嵌入式 Mendix应用的开发示例
    【css】创建一个带有上矩形和下倒三角角标
    Linux ARM平台开发系列讲解(网络篇) 2.5 Marvell 88EA6321/88EA6320 交换机注册框架分析
    【Linux进程】进程状态---进程僵尸与孤儿
    12.SqlSession 的工具类 获取sqlsession
    代理IP供应商的代理池大小怎么看?
    [附源码]SSM计算机毕业设计足球队管理系统JAVA
    学习日记01——JS基础01
    ModStartCMS v5.3.0 任务调度记录,模块市场优化
  • 原文地址:https://blog.csdn.net/m0_49093968/article/details/125559981
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号