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

Làm thế nào để chuyển đổi đối tượng Java sang JSON bằng cách sử dụng thư viện GSON?

JSON hoặc JavaScript Object Notation là một tiêu chuẩn mở dựa trên văn bản nhẹ được thiết kế để trao đổi dữ liệu mà con người có thể đọc được. Các quy ước được sử dụng bởi JSON được các lập trình viên biết đến, bao gồm C, C ++, Java, Python, Perl, v.v.

Có một số thư viện Java có sẵn để xử lý các đối tượng JSON. Google Gson là một thư viện dựa trên Java đơn giản để tuần tự hóa các đối tượng Java thành JSON và ngược lại. Đây là một thư viện mã nguồn mở do Google phát triển.

Chuyển đổi đối tượng Java thành JSON

Thư viện Gson của Google cung cấp một lớp có cùng tên (Gson), là lớp chính của thư viện.

Lớp này cung cấp một phương thức có tên toJson () Có một số biến thể của phương thức này trong đó một trong số chúng chấp nhận một đối tượng Java và chuyển đổi nó thành một đối tượng JSON và trả về nó.

Do đó, để chuyển đổi một đối tượng Java thành Chuỗi JSON bằng cách sử dụng thư viện GSON -

  • Thêm phần phụ thuộc maven sau vào pom.xml của bạn

<dependency>
   <groupId>com.google.code.gson</groupId>
   <artifactId>gson</artifactId>
   <version>2.8.5</version>
</dependency>
  • Tạo đối tượng javabean / POJO với các biến riêng và phương thức setter / getter.

  • Tạo một lớp khác (đảm bảo rằng lớp POJO có sẵn cho lớp này).

  • Trong đó, tạo một đối tượng của lớp POJO, đặt các giá trị bắt buộc cho nó bằng các phương thức setter.

  • Khởi tạo lớp Gson.

  • Gọi phương thức toJson () bằng cách chuyển đối tượng POJO đã tạo ở trên.

  • Truy xuất và in JSON đã thu được.

Ví dụ

import com.google.gson.Gson;
class Student {
   private int id;
   private String name;
   private int age;
   private long phone;
   public int getId() {
      return id;
   }
   public void setId(int id) {
      this.id = id;
   }
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public long getPhone() {
      return phone;
   }
   public void setPhone(long phone) {
      this.phone = phone;
   }
}
public class ObjectTOString {
   public static void main(String args[]) {
      Student std = new Student();
      std.setId(001);
      std.setName("Krishna");
      std.setAge(30);
      std.setPhone(9848022338L);
      //Creating the Gson object
      Gson gSon = new Gson();
      String jsonString = gSon.toJson(std);
      System.out.println(jsonString);
   }
}

Đầu ra

{"id":1,"name":"Krishna","age":30,"phone":9848022338}