如何使用Java中的Jackson库来序列化属性的顺序?
@JsonPropertyOrder是一个注释 在要使用的类级。它以字段列表为属性,该列表定义了对象在对象JSON序列化结果中出现在字符串中的顺序。注释声明中包含的属性可以先序列化(以定义的顺序),然后再定义中不包含的任何属性。
语法
public @interface JsonPropertyOrder
示例
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import java.util.*;
import java.io.*;
public class JsonPropertyOrderTest {
public static void main(String args[]) throws JsonGenerationException, JsonMappingException, IOException {
Employee emp = new Employee();
emp.setFirstName("Adithya");
emp.setEmpId(25);
emp.setLastName("Jai");
emp.getTechnologies().add("Java");
emp.getTechnologies().add("Scala");
emp.getTechnologies().add("Python");
ObjectMapper mapper = new ObjectMapper();
mapper.writerWithDefaultPrettyPrinter().writeValue(System.out, emp);
}
}
//员工阶层
@JsonPropertyOrder({
"firstName",
"lastName",
"technologies",
"empId"
})
class Employee {
private int empId;
private String firstName;
private String lastName;
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;
}
}输出结果
{
"firstName" : "Adithya",
"lastName" : "Jai",
"technologies" : [ "Java", "Scala", "Python" ],
"empId" : 125
}热门推荐
10 祝女儿简短祝福语大全
11 大学新年祝福语简短创意
12 元旦适合的祝福语简短
13 朋友出远门祝福语简短
14 初六简短的祝福语
15 祝男孩生日祝福语简短
16 同事调离的祝福语简短
17 拜年红包的祝福语简短
18 妈妈生日祝福语简短励志