Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để xác định các quy ước đặt tên cho tên trường JSON trong Java?

FieldNamingPolicy có thể được sử dụng để xác định một số quy ước đặt tên tiêu chuẩn cho tên trường JSON và nó có thể được sử dụng cùng với GsonBuilder để định cấu hình Gson trường hợp để dịch đúng tên trường Java thành tên trường JSON mong muốn. Chúng tôi có thể sử dụng setFieldNamingPolicy () phương thức của GsonBuilder để định cấu hình chiến lược chính sách đặt tên cụ thể cho trường của đối tượng trong quá trình tuần tự hóa deserialization .

Gson hỗ trợ các yêu cầu đặt tên trường khác nhau với các chính sách đặt tên trường sau đây

  • FieldNamingPolicy.IDENTITY :Nó sử dụng cách đặt tên giống hệt như mô hình Java khi nó tuần tự hóa một đối tượng.
  • FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES :Nó sửa đổi một tên trường Java từ dạng in camel của nó thành tên trường viết thường trong đó mỗi từ được phân tách bằng dấu gạch dưới (_).
  • FieldNamingPolicy.LOWER_CASE_WITH_DASHES: Nó sửa đổi tên trường Java từ dạng có vỏ lạc đà của nó thành tên trường viết thường trong đó mỗi từ được phân tách bằng dấu gạch ngang (-).
  • FieldNamingPolicy.UPPER_CAMEL_CASE :Nó sẽ đảm bảo rằng "chữ cái" đầu tiên của tên trường Java được viết hoa khi được tuần tự hóa thành dạng JSON của nó.
  • FieldNamingPolicy.UPPER_CAMEL_CASE_WITH_SPACES :Nó sẽ đảm bảo rằng "chữ cái" đầu tiên của tên trường Java được viết hoa khi được tuần tự hóa sang dạng JSON của nó và các từ sẽ được phân tách bằng dấu cách.

Ví dụ

import com.google.gson.*;
import java.sql.Date;
import java.time.LocalDate;
public class FieldNamingPolicyTest {
   public static void main(String[] args) {
      Gson gson = new GsonBuilder().setPrettyPrinting().setDateFormat("yyyy-MM- dd") .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_DASHES).create();
      Person p = new Person("Raja", "Ramesh", 30, Date.valueOf(LocalDate.of(1988, 1, 1)));
      String jsonStr = gson.toJson(p);
      System.out.println(jsonStr);
   }
}
// Person class
class Person {
   private String fistName;
   private String lastName;
   private int _age;
   private Date dateOfBirth;
   public Person(String fistName, String lastName, int _age, Date dateOfBirth) {
      super();
      this.fistName = fistName;
      this.lastName = lastName;
      this._age = _age;
      this.dateOfBirth = dateOfBirth;
   }
}

Đầu ra

{
 "fist-name": "Raja",
   "last-name": "Ramesh",
   "_age": 30,
   "date-of-birth": "1988-01-01"
}