当前位置: 首页 > news >正文

@JSONField(serialize = false)序列化过程中排除特定字段

@JSONField(serialize = false)阿里巴巴 Fastjson 库 提供的注解,用于控制 Java 对象与 JSON 数据转换时的字段行为。以下是详细说明:


作用

  • 禁用字段的序列化
    当使用 Fastjson 将 Java 对象转换为 JSON 字符串时,被标记的字段不会包含在生成的 JSON 中
    典型场景:隐藏敏感信息(如密码、密钥)或不必要传输的字段。

示例

public class User {
    private String name;
    
    @JSONField(serialize = false)
    private String password;

    // Getters and Setters
}
  • 序列化结果
    User user = new User();
    user.setName("Alice");
    user.setPassword("123456");
    
    String json = JSON.toJSONString(user);
    // 输出: {"name":"Alice"} (password 字段被忽略)
    

其他常用参数

  1. name
    指定字段在 JSON 中的名称,实现字段重命名:

    @JSONField(name = "user_name")
    private String name;
    // 序列化为 {"user_name":"Alice"}
    
  2. deserialize
    控制字段是否参与反序列化(JSON → 对象):

    @JSONField(serialize = false, deserialize = false)
    private String password;
    // 序列化和反序列化均忽略该字段
    
  3. format
    自定义日期格式:

    @JSONField(format = "yyyy-MM-dd")
    private Date birthDate;
    
  4. ordinal
    控制字段在 JSON 中的顺序:

    @JSONField(ordinal = 1)
    private String name; // 在 JSON 中排在前面
    

注意事项

  • 仅适用于 Fastjson
    该注解是 Fastjson 特有,若项目使用其他库(如 Jackson 或 Gson),需使用对应注解:

    • Jackson: @JsonIgnore
    • Gson: @Expose(serialize = false)
  • 默认行为
    未设置 deserialize 时,字段默认参与反序列化。若需完全忽略字段,需显式设置 deserialize = false


总结

  • 核心用途:在 Fastjson 序列化过程中排除特定字段。
  • 扩展配置:通过参数调整字段名称、顺序、格式及反序列化行为。
  • 适用场景:敏感信息保护、减少数据传输冗余、字段名映射等。

相关文章:

  • 从零构建大语言模型全栈开发指南:第二部分:模型架构设计与实现-2.2.3实战案例:在笔记本电脑上运行轻量级LLM
  • NLP高频面试题(十六)——deepspeed原理
  • 记一次线上环境JAR冲突导致程序报错org.springframework.web.util.NestedServletException
  • v-model 总结
  • Java后端API限流秘籍:高并发的防护伞与实战指南
  • unittest自动化测试实战
  • 嵌入式硬件工程师从小白到入门-PCB绘制(二)
  • Qt跨平台文件传输系统开发全解:TCP/IP协议+多线程架构
  • 观成科技:海莲花利用MST投递远控木马
  • K8s的网络
  • Go环境相关理解
  • MySQL 中,分库分表机制和分表分库策略
  • Modbus RTU ---> Modbus TCP透传技术实现(Modbus透传、RS485透传、RTU透传)分站代码实现、协议转换器
  • heapq库的使用——python代码
  • 【计算机网络】DHCP工作原理
  • USB Burning Tool/SP Flash Tool/ADB电视盒子刷机工具大全
  • ISCA Archive 的 关于 dysarthria 的所有文章摘要(1996~2024)
  • Redisson 实现分布式锁简单解析
  • node-red dashboard
  • C++:函数(通识版)
  • dreamweaver做网站学习解析/手机优化大师
  • wordpress 代替/优质的seo快速排名优化
  • 福建企业网站开发/最近的新闻大事
  • 游戏网站建设杭州/百度在线使用
  • seo收费还是免费/排名优化网站
  • 百度做一个网站怎么做呢/app广告推广