@JSONField注解

@JSONField注解

@JSONField注解是阿里巴巴fastjson库中的注解,用于控制Java对象与JSON字符串之间的转换。它可以用于控制序列化和反序列化过程中的一些细节,例如日期格式、序列化顺序、字段名称等。

@JSONField注解的常用属性包括:

java 复制代码
- name:指定JSON字符串中的字段名称,默认为Java对象中的字段名称。
- format:指定日期格式,例如"yyyy-MM-dd HH:mm:ss"。
- serialize:指定是否序列化该字段,默认为true。
- deserialize:指定是否反序列化该字段,默认为true。
- ordinal:指定序列化顺序,数值越小越先序列化。
- alternateNames:指定该字段的备选名称,当JSON字符串中不存在该字段名称时,会尝试使用备选名称进行反序列化。

示例:

java 复制代码
public class User {
    @JSONField(name = "id")
    private Long userId;
    
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    
    @JSONField(ordinal = 1)
    private String name;
    
    @JSONField(alternateNames = {"email", "mail"})
    private String email;
    
    // getter and setter
}

在上面的示例中,@JSONField注解被用于控制User类中的字段与JSON字符串之间的转换。例如,@JSONField(name = "id")表示将Java对象中的userId字段映射到JSON字符串中的"id"字段;@JSONField(format = "yyyy-MM-dd HH:mm:ss")表示将Java对象中的createTime字段按照指定的日期格式转换为JSON字符串;@JSONField(alternateNames = {"email", "mail"})表示当JSON字符串中不存在email字段时,会尝试使用mail字段进行反序列化。

相关推荐
用户83071968408221 小时前
Spring Boot WebClient性能比RestTemplate高?看完秒懂!
java·spring boot
Assby1 天前
从洋葱模型看Java与Go的设计哲学:为什么它们如此不同?
java·后端·架构
belhomme1 天前
(面试题)Netty 线程模型
java·面试·netty
NE_STOP1 天前
MyBatis-plus进阶之映射与条件构造器
java
Seven971 天前
NIO的零拷贝如何实现高效数据传输?
java
架构师沉默2 天前
别又牛逼了!AI 写 Java 代码真的行吗?
java·后端·架构
后端AI实验室2 天前
我把一个生产Bug的排查过程,交给AI处理——20分钟后我关掉了它
java·ai
凉年技术2 天前
Java 实现企业微信扫码登录
java·企业微信
狂奔小菜鸡2 天前
Day41 | Java中的锁分类
java·后端·java ee