Jackson – Thay đổi tên thuộc tính trong Serialization

Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu các thay đổi tên thuộc tính khi chuyển từ Java object sang Json.

Thay đổi tên thuộc tính trong Serialization

Để bắt đầu, chúng ta có MyDto class sau

public class MyDto {
    private String stringValue;
 
    public MyDto() {
        super();
    }
 
    public String getStringValue() {
        return stringValue;
    }
 
    public void setStringValue(String stringValue) {
        this.stringValue = stringValue;

Nếu thông thường, serialization MyDto object với stringValue = “some value”, chúng ta sẽ được kết quả sau

{"stringValue":"some value"}

Để thay đổi tên của thuộc tính trong Json, thay vì stringValue sẽ đổi thành strVal. Chúng ta cần sử dụng đến @JsonProperty annotation mà Jackson cung cấp.

class MyDto {
    @JsonProperty("strVal")
    private String stringValue;
    // ...
}}

Kết quả output 

ObjectMapper mapper = new ObjectMapper();
MyDto dtoObject = new MyDto();
dtoObject.setStringValue("a");

String dtoAsString = mapper.writeValueAsString(dtoObject);
System.out.println(dtoAsString); // {"strVal":"a"}

Tóm lược

Việc chuyển đổi một Java object sang Json là một công việc phổ biến, song với đó việc cần thay đổi tên của Json output cũng thật sự cần thiết để chúng có thể dùng trong các hệ thống khác. 

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x