色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

jackson將類轉換json

錢斌斌2年前7瀏覽0評論

Jackson是一個流行的Java庫,用于將Java對象序列化為JSON格式或解析JSON而構建Java對象。Jackson 序列化庫提供了三個主要的機制:

  • Streaming API:簡單的基于流的API
  • Annotation-based Object Mapper:基于Jackson Annotations (批注) API的對象映射對象
  • Tree Model:處理JSON數據的樹形模型(基于Dom模型編碼、反編碼操作)

我們將重點關注 Annotation-based Object Mapper機制。使用這種機制,可以在POJO (Plain Old Java Object)實體上使用注釋配置來改變序列化行為。

下面是一個簡單的Java類:

class Employee {
private String name;
private int age;
private String position;
public Employee(String name, int age, String position) {
this.name = name;
this.age = age;
this.position = position;
}
}

要將Employee類轉換為JSON字符串,可以執行以下操作:

ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(new Employee("Alice", 25, "Manager")); 
System.out.println(json);

輸出結果為:

{"name":"Alice","age":25,"position":"Manager"}

我們可以看到,Jackson默認使用字段名稱作為JSON屬性名稱。但是,我們可以使用 @JsonProperty注釋指定不同的屬性名稱。

以下是相同的Employee類,但使用@JsonProperty注釋更改了屬性名稱:

class Employee {
@JsonProperty("full_name")
private String name;
@JsonProperty("years_of_service")
private int age;
@JsonProperty("job_title")
private String position;
public Employee(String name, int age, String position) {
this.name = name;
this.age = age;
this.position = position;
}
}

在這個版本中,我們使用三個不同的@JsonProperty注釋改變了字段名稱。

轉換為JSON的代碼仍然相同:

ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(new Employee("Alice", 25, "Manager")); 
System.out.println(json);

輸出結果為:

{"full_name":"Alice","years_of_service":25,"job_title":"Manager"}

我們可以看到,屬性名稱已更改為使用@JsonProperty注釋中指定的名稱。這樣,我們可以將Java類轉換為我們需要的任何JSON格式。