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.