欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、使用場景

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

二、環(huá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、實體類

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)方式

在實體類上面加上下面的注解:

@JsonInclude(JsonInclude.Include.NON_EMPTY)

(2)測試

Controller里面的方法:

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

測試結果:

(3)說明

如果要對部分屬性進行空值限制,分為兩類:

  • 字符串、基本數(shù)據類型的設置,使用JsonInclude.Include.NON_NULL
  • 對象、數(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)方式

實體類屬性上使用注解:

@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)測試

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);
    }

測試結果:

四、 Jackson常用注解

1、 @JsonProperty

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

2、@JsonPropertyOrder

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

3、@JsonInclude

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

4、@JsonIgnoreProperties

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

5、@JsonFormat

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

6、@JsonUnwrapped

        當實體類中成員屬性是一個類的對象時候,忽略包裝。直接顯示屬性。

總結

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

相關文章

  • Spring中11個最常用的擴展點總結,你知道幾個

    Spring中11個最常用的擴展點總結,你知道幾個

    我們知道IOC(控制反轉)和AOP(面向切面編程)是spring的基石,除此之外spring的擴展能力非常強,下面這篇文章主要給大家介紹了關于Spring中11個最常用的擴展點的相關資料,需要的朋友可以參考下
    2022-12-12
  • JavaSE?XML解析技術的使用方法詳解

    JavaSE?XML解析技術的使用方法詳解

    XML意為可擴展標記語言,被多數(shù)技術人員用以選擇作為數(shù)據傳輸?shù)妮d體,成為一種通用的數(shù)據交換格式,下面這篇文章主要給大家介紹了關于JavaSE?XML解析技術的使用方法,需要的朋友可以參考下
    2023-04-04
  • 解讀@EventListener工作原理

    解讀@EventListener工作原理

    這篇文章主要介紹了@EventListener工作原理,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java SPI簡單應用案例詳解

    Java SPI簡單應用案例詳解

    這篇文章主要介紹了Java SPI簡單應用案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • 基于SpringBoot實現(xiàn)Web應用的登錄與退出功能

    基于SpringBoot實現(xiàn)Web應用的登錄與退出功能

    登錄與退出功能作為 Web 應用中的基礎且重要的組成部分,直接關系到用戶的安全和隱私保護,所以本文給大家介紹了基于SpringBoot實現(xiàn)Web應用的登錄與退出功能,文中有詳細的代碼供大家參考,需要的朋友可以參考下
    2024-04-04
  • spring boot 統(tǒng)一JSON格式的接口返回結果的實現(xiàn)

    spring boot 統(tǒng)一JSON格式的接口返回結果的實現(xiàn)

    這篇文章主要介紹了spring boot 統(tǒng)一JSON格式的接口返回結果的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • Spring中使用Async進行異步功能開發(fā)實戰(zhàn)示例(大文件上傳為例)

    Spring中使用Async進行異步功能開發(fā)實戰(zhàn)示例(大文件上傳為例)

    本文以大文件上傳為例,首先講解在未進行程序異步化時,程序的運行機制和具體表現(xiàn),然后講解如何進行異步化的改造,讓程序進行異步執(zhí)行,通過本文不僅能讓你掌握如何進行Event的事件開發(fā),同時還能掌握在Spring中如何進行異步開發(fā),熟悉@Async的具體用法,感興趣的朋友一起看看吧
    2024-08-08
  • Rxjava+Retrofit+MVP實現(xiàn)購物車功能

    Rxjava+Retrofit+MVP實現(xiàn)購物車功能

    這篇文章主要為大家詳細介紹了Rxjava+Retrofit+MVP實現(xiàn)購物車功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Java中ReentrantLock和ReentrantReadWriteLock的原理

    Java中ReentrantLock和ReentrantReadWriteLock的原理

    這篇文章主要介紹了Java中ReentrantLock和ReentrantReadWriteLock的原理,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-09-09
  • SpringBoot整合Redis正確的實現(xiàn)分布式鎖的示例代碼

    SpringBoot整合Redis正確的實現(xiàn)分布式鎖的示例代碼

    這篇文章主要介紹了SpringBoot整合Redis正確的實現(xiàn)分布式鎖的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07

最新評論