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 Jackson?

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. Jackson 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.

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

ObjectMapper lớp của API Jackson trong Java cung cấp các phương thức để chuyển đổi một đối tượng Java thành đối tượng JSON và ngược lại.

writeValueAsString () phương thức của lớp này chấp nhận một đối tượng JSON làm tham số và trả về Chuỗi JSON tương ứng của 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 Jackson -

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

<dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-databind</artifactId>
   <version>2.10.0.pr2</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 ObjectMapper.

  • Gọi phương thức writeValueAsString () 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 JacksionExample {
   public static void main(String args[]) throws Exception {
      Student std = new Student();
      std.setId(001);
      std.setName("Krishna");
      std.setAge(30);
      std.setPhone(9848022338L);
      //Creating the ObjectMapper object
      ObjectMapper mapper = new ObjectMapper();
      //Converting the Object to JSONString
      String jsonString = mapper.writeValueAsString(std);
      System.out.println(jsonString);
   }
}

Đầu ra

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