• @JSONField注解的使用


    name属性指定JSON串中key的名称

    用于解决,当前端传过来的JSON的key与字段名不同时,我们可以在字段名上加上这个注解

    Java Bean类

    1. @Data
    2. @AllArgsConstructor
    3. @NoArgsConstructor
    4. public class User {
    5. @JSONField(name = "userName")
    6. private String username;
    7. @JSONField(name = "passWord")
    8. private String password;
    9. @JSONField(format = "yyyy-MM-dd HH:mm:ss",name = "createTime")
    10. private Date date;
    11. }

    测试一:发送JSON数据

    1. User user = new User("lixianhe","1234456",new Date());
    2. System.out.println(user);
    3. String stringUser = JSON.toJSONString(user);
    4. System.out.println(stringUser);
    5. /*
    6. 输出结果
    7. User(username=lixianhe, password=1234456, date=Fri Jun 24 10:33:38 CST 2022)
    8. {
    9. "createTime":"2022-06-24 10:33:38",
    10. "passWord":"1234456",
    11. "userName":"lixianhe"
    12. }
    13. */

    测试二:接受JSON数据

    1. String s = "{\"createTime\":\"2022-06-24 10:33:38\",\"passWord\":\"1234456\",\"userName\":\"lixianhe\"}";
    2. User user = JSONObject.parseObject(s,User.class);
    3. System.out.println(user);
    4. // 输出结果:User(username=lixianhe, password=1234456, date=Fri Jun 24 10:33:38 CST 2022)

    指定JSON的时间格式

    从前端接受包含时间的JSON时候,时间数据为此类型的字符串,JSON转Java对象时会自动转化为Date类型

    1. @Data
    2. @AllArgsConstructor
    3. @NoArgsConstructor
    4. public class User {
    5. @JSONField(format = "yyyy-MM-dd HH:mm:ss",name = "createTime")
    6. private Date createTime;
    7. }

    serialize / deserialize 指定字段不序列化 / 不反序列化,默认都是true

    • 不序列化:Java对象转换JSON的时候忽略这个属性
    • 不反序列化:JSON转Java对象的时候忽略这个属性
    1. @JSONField(serialize=false)
    2. public Date date;

    serialzeFeatures 属性

    fastjson默认的序列化规则是当字段的值为null的时候,是不会序列化这个字段

    1. @JSONField(serialzeFeatures=SerializerFeature.WriteMapNullValue)
    2. private String address;

    此时,value的值为null的时候,依然会把它的值序列化出来

  • 相关阅读:
    达梦数据库在不修改SQL的情况下为SQL指定HINT
    Spring系列22:Spring AOP 概念与快速入门篇
    springboot农机电招平台springboot37
    软文推广提升品牌曝光的技巧,媒介盒子告诉你
    面试题 | 说一说cookie sessionStorage localStorage 区别?
    【洛谷题解】P2670 [NOIP2015 普及组] 扫雷游戏
    代码源每日一题div2 可重排列
    中断机制-interrupt和isInterrupted源码分析、中断协商案例
    面试算法2:二进制加法
    EL表达式
  • 原文地址:https://blog.csdn.net/m0_56750901/article/details/125438387