最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java后端返回?cái)?shù)據(jù)給前端時(shí)去除值為空或NULL的屬性、忽略某些屬性代碼示例

 更新時(shí)間:2024年07月15日 11:09:13   作者:姚舜禹_12140  
在Java開發(fā)中我們處理JSON數(shù)據(jù)時(shí)經(jīng)常會(huì)遇到空值(null)的情況,這篇文章主要給大家介紹了關(guān)于java后端返回?cái)?shù)據(jù)給前端時(shí)去除值為空或NULL的屬性、忽略某些屬性的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、使用場(chǎng)景

在開發(fā)過程中,有時(shí)候需要將后端數(shù)據(jù)返回前端,此時(shí)有些數(shù)據(jù)為空屬性不需要返回,或者有些屬性不需要返回,因此就需要處理。

二、環(huán)境準(zhǔn)備

1、引入依賴

		<dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.10.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.10.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.10.0</version>
        </dependency>

2、實(shí)體類

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Student{
    private Integer id;
    private String name;
    private Integer age;
    private String address;

    private BigDecimal score;

    private String className;

    private List<String> subjectList = new ArrayList<>();
}

三、示例

1、不返回空值

(1)方式

在實(shí)體類上面加上下面的注解:

@JsonInclude(JsonInclude.Include.NON_EMPTY)

(2)測(cè)試

Controller里面的方法:

    @PostMapping("/getData")
    public R getData(){
        Student student = new Student();
        student.setName("Tom");
        student.setAge(22);
        return R.ok().data("student", student);
    }

測(cè)試結(jié)果:

(3)說明

如果要對(duì)部分屬性進(jìn)行空值限制,分為兩類:

  • 字符串、基本數(shù)據(jù)類型的設(shè)置,使用JsonInclude.Include.NON_NULL
  • 對(duì)象、數(shù)組之類的設(shè)置,使用JsonInclude.Include.NON_EMPTY
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Student{
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer id;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String name;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer age;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String address;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    private BigDecimal score;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String className;

    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private List<String> subjectList = new ArrayList<>();

}

2、不返回部分屬性

(1)方式

實(shí)體類屬性上使用注解:

@JsonIgnore
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class Student {
    private Integer id;
    private String name;
    private Integer age;
    @JsonIgnore
    private String address;

    private BigDecimal score;

    private String className;

    private List<String> subjectList = new ArrayList<>();
}

(2)測(cè)試

Controller里面的方法:

    @PostMapping("/getData")
    public R getData(){
        Student student = new Student();
        student.setId(1001);
        student.setName("Tom");
        student.setAge(22);
        student.setAddress("浙江");
        return R.ok().data("student", student);
    }

測(cè)試結(jié)果:

四、 Jackson常用注解

1、 @JsonProperty

        此注解用于屬性上,作用是把該屬性的名稱序列化為另外一個(gè)名稱,如把testPwd屬性序列化為pwd,@JsonProperty(value="pwd")。

2、@JsonPropertyOrder

        作用在類上,被用來指明當(dāng)序列化時(shí)需要對(duì)屬性做排序,它有2個(gè)屬性一個(gè)是alphabetic:布爾類型,表示是否采用字母拼音順序排序,默認(rèn)是為false,即不排序。如@JsonPropertyOrder(alphabetic=true)。

3、@JsonInclude

        是用在實(shí)體類的方法類的頭上 作用是實(shí)體類的參數(shù)查詢到的為null的不顯示,比如說你想傳一些json數(shù)據(jù)到前臺(tái),但是不想傳值為null的數(shù)據(jù),就可以使用該標(biāo)簽。如@JsonInclude(JsonInclude.Include.NON_NULL)

4、@JsonIgnoreProperties

        可以注明是想要忽略的屬性列表如@JsonIgnoreProperties({"name","age","title"}),也可以注明過濾掉未知的屬性如@JsonIgnoreProperties(ignoreUnknown=true),@JsonIgnore表示忽略當(dāng)前屬性。

5、@JsonFormat

        用在屬性和方法上,可以方便的進(jìn)行格式轉(zhuǎn)換,如把Date轉(zhuǎn)換為我們要的模式@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")。

6、@JsonUnwrapped

        當(dāng)實(shí)體類中成員屬性是一個(gè)類的對(duì)象時(shí)候,忽略包裝。直接顯示屬性。

總結(jié)

到此這篇關(guān)于java后端返回?cái)?shù)據(jù)給前端時(shí)去除值為空或NULL的屬性、忽略某些屬性的文章就介紹到這了,更多相關(guān)java后端返回?cái)?shù)據(jù)去除空值或NULL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決Tomcat啟動(dòng)報(bào)異常java.lang.ClassNotFoundException問題

    解決Tomcat啟動(dòng)報(bào)異常java.lang.ClassNotFoundException問題

    這篇文章主要介紹了解決Tomcat啟動(dòng)報(bào)異常java.lang.ClassNotFoundException問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • JavaEE之SpringBoot配置文件的使用及說明

    JavaEE之SpringBoot配置文件的使用及說明

    本文主要介紹了Spring Boot中配置文件的使用,包括application.properties和application.yml兩種格式的配置文件的語(yǔ)法、讀取方式以及優(yōu)缺點(diǎn),同時(shí),還通過一個(gè)驗(yàn)證碼案例練習(xí),展示了如何使用Spring Boot和hutool工具類包實(shí)現(xiàn)驗(yàn)證碼功能
    2026-01-01
  • Java線程池ForkJoinPool實(shí)例解析

    Java線程池ForkJoinPool實(shí)例解析

    這篇文章主要介紹了Java線程池ForkJoinPool實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Spring?Security?自定義授權(quán)服務(wù)器實(shí)踐記錄

    Spring?Security?自定義授權(quán)服務(wù)器實(shí)踐記錄

    授權(quán)服務(wù)器(Authorization Server)目前并沒有集成在Spring Security項(xiàng)目中,而是作為獨(dú)立項(xiàng)目存在于Spring生態(tài)中,這篇文章主要介紹了Spring?Security?自定義授權(quán)服務(wù)器實(shí)踐,需要的朋友可以參考下
    2022-08-08
  • Java創(chuàng)建隨機(jī)數(shù)的四種方式總結(jié)

    Java創(chuàng)建隨機(jī)數(shù)的四種方式總結(jié)

    這篇文章主要介紹了java的四種隨機(jī)數(shù)生成方式的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2022-07-07
  • Java 中的語(yǔ)法糖,真甜

    Java 中的語(yǔ)法糖,真甜

    語(yǔ)法糖(Syntactic sugar),也叫做糖衣語(yǔ)法,是英國(guó)科學(xué)家發(fā)明的一個(gè)術(shù)語(yǔ),通常來說使用語(yǔ)法糖能夠增加程序的可讀性,從而減少程序代碼出錯(cuò)的機(jī)會(huì).這篇文章主要介紹了Java 中的語(yǔ)法糖知識(shí),需要的朋友可以參考下
    2020-12-12
  • Java基礎(chǔ)之FastJson詳解

    Java基礎(chǔ)之FastJson詳解

    今天給大家復(fù)習(xí)Java基礎(chǔ)FastJson,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • IDEA中服務(wù)太多內(nèi)存不足閃退的解決過程

    IDEA中服務(wù)太多內(nèi)存不足閃退的解決過程

    本文介紹了使用idea工具啟動(dòng)微服務(wù)時(shí),因服務(wù)過多導(dǎo)致內(nèi)存不足閃退的問題及解決方法,需為每個(gè)服務(wù)分配合適的內(nèi)存,并注意避免服務(wù)因內(nèi)存不足而無(wú)法啟動(dòng)的狀況
    2026-04-04
  • Java刪除String中指定字符的11種方法匯總

    Java刪除String中指定字符的11種方法匯總

    這篇文章主要給大家介紹了關(guān)于Java刪除String中指定字符的11種方法,在Java中String類提供了許多方法來處理字符串,其中包括刪除指定字符的方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Spring Boot開發(fā)中加密數(shù)據(jù)的模糊搜索解決方案詳解

    Spring Boot開發(fā)中加密數(shù)據(jù)的模糊搜索解決方案詳解

    在SpringBoot中實(shí)現(xiàn)加密手機(jī)號(hào)的模糊搜索,需在數(shù)據(jù)安全、業(yè)務(wù)功能和系統(tǒng)性能之間進(jìn)行權(quán)衡,簡(jiǎn)單解密后查詢方案僅適用于極小規(guī)模應(yīng)用,本文介紹Spring Boot開發(fā)中加密數(shù)據(jù)的模糊搜索解決方案,感興趣的朋友跟隨小編一起看看吧
    2025-12-12

最新評(píng)論

泰顺县| 青浦区| 宁强县| 文安县| 陆良县| 宾阳县| 应城市| 靖安县| 东莞市| 蒙城县| 共和县| 乐山市| 汤原县| 怀化市| 静海县| 德兴市| 东安县| 湾仔区| 荆门市| 哈巴河县| 缙云县| 平湖市| 新民市| 安化县| 柳州市| 莆田市| 贺州市| 开平市| 景德镇市| 白朗县| 鸡西市| 天全县| 温泉县| 元朗区| 孟津县| 河北区| 额尔古纳市| 双流县| 北碚区| 府谷县| 临潭县|