Jackson 注解 - @JsonPropertyOrder
@JsonPropertyOrder 允许在序列化 JSON 对象时保留特定顺序。
没有@JsonPropertyOrder的示例
import java.io.IOException; import com.fasterxml.jackson.databind.ObjectMapper; public class JacksonTester { public static void main(String args[]){ ObjectMapper mapper = new ObjectMapper(); try { Student student = new Student("Mark", 1); String jsonString = mapper .writerWithDefaultPrettyPrinter() .writeValueAsString(student); System.out.println(jsonString); } catch (IOException e) { e.printStackTrace(); } } } class Student { private String name; private int rollNo; public Student(String name, int rollNo) { this.name = name; this.rollNo = rollNo; } public String getName(){ return name; } public int getRollNo(){ return rollNo; } }
输出
{ "name" : "Mark", "rollNo" : 1 }
Example @JsonPropertyOrder
import java.io.IOException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.annotation.JsonPropertyOrder; public class JacksonTester { public static void main(String args[]){ ObjectMapper mapper = new ObjectMapper(); try { Student student = new Student("Mark", 1); String jsonString = mapper .writerWithDefaultPrettyPrinter() .writeValueAsString(student); System.out.println(jsonString); } catch (IOException e) { e.printStackTrace(); } } } @JsonPropertyOrder({ "rollNo", "name" }) class Student { private String name; private int rollNo; public Student(String name, int rollNo){ this.name = name; this.rollNo = rollNo; } public String getName(){ return name; } public int getRollNo(){ return rollNo; } }
输出
{ "name" : "Mark", "rollNo" : 1 }