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

实体类未设置字段如何不参与转化json?

引言

开发实践中经常碰到,base请求中字段过多,但是子类请求不需要用到base请求字段,并且要求未设置字段不参与转化成JSON,那么可以用到以下工具

实践

使用 Jackson

Jackson 是一个广泛使用的 Java JSON 处理库,Spring Boot 默认使用它来处理 JSON 数据。你可以通过 @JsonInclude 注解来控制哪些字段会被序列化到 JSON 中。

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;

// 设置实体类中为 null 的字段不参与序列化
@JsonInclude(JsonInclude.Include.NON_NULL)
public class User {
    private String name;
    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public static void main(String[] args) throws Exception {
        User user = new User();
        user.setName("John");
        // age 字段未设置

        ObjectMapper objectMapper = new ObjectMapper();
        String json = objectMapper.writeValueAsString(user);
        System.out.println(json);
    }
}
  • @JsonInclude(JsonInclude.Include.NON_NULL):此注解加在实体类上,表明当字段的值为 null 时,该字段不会被序列化为 JSON。
  • ObjectMapper:用于将 Java 对象转换为 JSON 字符串的核心类。writeValueAsString 方法能把 User 对象转换为 JSON 字符串。

使用 Gson

Gson 是 Google 开发的一个简单易用的 Java JSON 处理库。可以通过配置 Gson 对象来排除值为 null 的字段。

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class User {
    private String name;
    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public static void main(String[] args) {
        User user = new User();
        user.setName("John");
        // age 字段未设置

        Gson gson = new GsonBuilder().serializeNulls(false).create();
        String json = gson.toJson(user);
        System.out.println(json);
    }
}
  • GsonBuilder().serializeNulls(false):构建 Gson 对象时,调用 serializeNulls(false) 方法,这样在序列化时就会忽略值为 null 的字段。
  • gson.toJson(user):把 User 对象转换为 JSON 字符串。

http://www.kler.cn/a/525888.html

相关文章:

  • 【开源免费】基于SpringBoot+Vue.JS公交线路查询系统(JAVA毕业设计)
  • 分布式系统架构怎么搭建?
  • 【美】H1B、F1、CPT、Day 1 CPT、OPT、B1/B2转F1 的核心区别及适用场景
  • 如何监控ubuntu系统某个程序的运行状态,如果程序出现异常,对其自动重启。
  • QPS 值是怎样进行计算和应用的
  • deepseek R1的确不错,特别是深度思考模式
  • Ubuntu中MySQL安装-02
  • 基于DeepSeek在藏语学习推广和藏语信息化方面可以做哪些工作?
  • 5.进程基本概念
  • fastadmin加密生成token
  • 数据分析系列--④RapidMiner进行关联分析(案例)
  • python编程环境安装保姆级教程--python-3.7.2pycharm2021.2.3社区版
  • 学习数据结构(4)顺序表+单链表
  • MySQL 索引存储结构
  • 在Windows上非ASCII(包括中文名)用户名导致Bazel不能使用的问题
  • 游戏开发领域 - 游戏引擎 UE 与 Unity
  • 从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架
  • 智云-一个抓取web流量的轻量级蜜罐-k8s快速搭建教程
  • 基于 WEB 开发的在线考试系统设计与实现
  • [创业之路-269]:《创业讨论会》- 系统之韵:从麻雀到5G系统的共通性探索
  • 蓝桥杯之c++入门(一)【C++入门】
  • OpenEuler学习笔记(十六):搭建postgresql高可用数据库环境
  • 什么是线性化PDF?
  • Effective Objective-C 2.0 读书笔记—— 消息转发
  • 登录管理——认证方案(JWT、拦截器、ThreadLocal)
  • 代码随想录算法训练营第三十九天-动态规划-337. 打家劫舍 III