Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Jackson 라이브러리를 사용하여 Java 객체를 JSON으로 변환하는 방법은 무엇입니까?

<시간/>

JSON 또는 JavaScript Object Notation은 사람이 읽을 수 있는 데이터 교환을 위해 설계된 가벼운 텍스트 기반 개방형 표준입니다. C, C++, Java, Python, Perl 등을 포함하여 JSON에서 사용하는 규칙은 프로그래머에게 알려져 있습니다.

JSON 개체를 처리하는 데 사용할 수 있는 여러 Java 라이브러리가 있습니다. Jackson은 자바 객체를 JSON으로 또는 그 반대로 직렬화하는 간단한 자바 기반 라이브러리입니다.

Java 객체를 JSON으로 변환

ObjectMapper Java의 Jackson API 클래스는 Java 객체를 JSON 객체로 또는 그 반대로 변환하는 메소드를 제공합니다.

writeValueAsString() 이 클래스의 메소드는 JSON 객체를 매개변수로 받아들이고 해당 JSON 문자열을 반환합니다.

따라서 Jackson 라이브러리를 사용하여 Java 객체를 JSON 문자열로 변환하려면 -

  • pom.xml에 다음 maven 종속성을 추가하십시오.

<dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-databind</artifactId>
   <version>2.10.0.pr2</version>
</dependency>
  • private 변수와 setter/getter 메소드를 사용하여 javabean/POJO 객체를 생성합니다.

  • 다른 클래스를 생성하십시오(POJO 클래스가 이 클래스에 사용 가능한지 확인하십시오).

  • 그 안에 POJO 클래스의 개체를 만들고 setter 메서드를 사용하여 필요한 값을 설정합니다.

  • ObjectMapper 클래스를 인스턴스화합니다.

  • 위에서 생성한 POJO 객체를 전달하여 writeValueAsString() 메소드를 호출합니다.

  • 획득한 JSON을 검색하고 인쇄합니다.

예시

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);
   }
}

출력

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