网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
private String firstName;
private String lastName;
private String gender;
private int age;
private double salary;
private boolean married;
}
**为 private 变量添加 getter 和 setter 方法**
因为我们创建的所有变量都是 private 的,我们应该提供方法去获取或操作这些数据,所有我们需要为每个变量添加 getter 和 setter 方法。当然这不是强制的,取决于我们的需求。但是现在我们在一个类里添加 getter 和 setter 方法。一个 getter 方法是为了获取一个变量的值,一个 setter 方法是为了从外面能设置这个变量的值。
// Getter and setter methods
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 String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public boolean getMarried() {
return married;
}
public void setMarried(boolean married) {
this.married = married;
}
你如果正担心,手动为大量的变量创建这些 getter 和 setter 方法会是非常痛苦的。大可不必有这种担心,每个IDE都有捷径添加 getter 和 setter 方法,goole一下就知道。
也不用在类里加任何构造函数,因为会有一个默认的构造函数。
**完整的POJO类:**
public class Employee {
// private variables or data members of pojo class
private String firstName;
private String lastName;
private String gender;
private int age;
private double salary;
private boolean married;
// Getter and setter methods
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 String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public boolean getMarried() {
return married;
}
public void setMarried(boolean married) {
this.married = married;
}
}
我们现在完成了为一个employee JSON创建一个POJO类,那么这个类有啥帮助呢。
用上面的POJO类,我们可以创建任意数量的自定义Employee对象,每个对象可以被转换成一个JSON Object,同样每个JSON Object 也被解析成 Employee POJO 对象。如果你有一个API需要动态的 Employee payload,我们可以很方便地创建不同数据的 employee payloads,而不用创建固定数据的JSON objects。简单来说,就是POJO方便你用简单的方式灵活创建和操作数据。
我们将从 POJO 创建一个JSON Object,反之亦然,利用Jackson API,我们称之为序列化和反序列化。
序列化 serialization - 将 Employee 类对象 转换成 JSON Object 呈现。
反序列化 deserialization - 将一个 JSON Object 转换成 Employee 类对象。
import org.junit.Test;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class EmployeeSerializationDeserialization {
@Test
public void createEmployeeJSONFromEmployeePOJOClass() throws JsonProcessingException
{
// Just create an object of Pojo class
Employee employee = new Employee();
// Set value as you wish
employee.setFirstName("Amod");
employee.setLastName("Mahajan");
employee.setAge(29);
employee.setGender("Male");
employee.setSalary(3434343);
employee.setMarried(false);
// Converting a Java class object to a JSON payload as string
ObjectMapper objectMapper = new ObjectMapper();
String employeeJson = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(employee);
System.out.println(employeeJson);
}
@Test
public void getPojoFromEmployeeObject() throws JsonProcessingException
{
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!