如何在Java中进行JSON序列化时忽略字段?

如果 Java 对象中有不希望被序列化的字段,我们可以使用 Jackson 库中的@JsonIgnore 注解。可以在字段级别使用@JsonIgnore,用于在序列化和反序列化期间忽略字段。

语法

public @interface JsonIgnore

示例

import java.io.*;

import java.util.*;

import com.fasterxml.jackson.core.*;

import com.fasterxml.jackson.databind.*;

import com.fasterxml.jackson.annotation.*;

public class JsonIgnoreAnnotationTest {

   public static void main(String args[]) throws JsonGenerationException, JsonMappingException, IOException {

      Employee emp = new Employee();

      emp.setFirstName("Raja");

      emp.setLastName("Ramesh");

      emp.setEmpId(120);

      emp.getTechnologies().add("Java");

      emp.getTechnologies().add("Scala");

      emp.getTechnologies().add("Python");

      ObjectMapper mapper = new ObjectMapper();

      mapper.writerWithDefaultPrettyPrinter().writeValue(System.out, emp);

   }

}

//员工阶层

@JsonInclude(JsonInclude.Include.NON_NULL)

@JsonPropertyOrder({

   "firstName",

   "lastName",

   "technologies",

   "empId"

})

class Employee {   @JsonProperty("EMPLOYEE_ID")

   private int empId;

   @JsonProperty("EMPLOYEE_FIRST_NAME")

   private String firstName;

   @JsonProperty("EMPLOYEE_LAST_NAME")

   private String lastName;

   @JsonIgnore    private List<String> technologies = new ArrayList<>();

   public int getEmpId() {

      return empId;

   }

   public void setEmpId(int empId) {

      this.empId = empId;

   }

   public String getFirstName() {

      return firstName;

   }

   public void setFirstName(String firstName) {

      this.firstName = firstName;

   }

   public String getLastName() {

      return lastName;

   }

   public void setLastName(String lastName) {

      this.lastName = lastName;

   }

   public List<String> getTechnologies() {

      return technologies;

   }

   public void setTechnologies(List<String> technologies) {

      this.technologies = technologies;

   }

}

输出结果

{

   "EMPLOYEE_FIRST_NAME" : "Raja",

   "EMPLOYEE_LAST_NAME" : "Ramesh",

   "EMPLOYEE_ID" : 120

}

以上是 如何在Java中进行JSON序列化时忽略字段? 的全部内容, 来源链接: utcz.com/z/315869.html

回到顶部