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

Java에서 JSON-lib API를 사용하여 JSON 문자열을 bean으로 변환하는 방법은 무엇입니까?


JSON-lib API 자바 빈, 지도, 배열을 직렬화 및 역직렬화하는 Java 라이브러리입니다. 및 컬렉션 JSON 형식으로. 먼저 문자열을 JSON 객체로 변환한 다음 이를 자바 빈으로 변환하여 JSON 문자열을 빈으로 변환해야 합니다.

구문

public static Object toBean(JSONObject jsonObject, Class beanClass)

아래 프로그램에서 JSON 문자열을 Bean으로 변환할 수 있습니다.

import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
public class ConvertJSONStringToBeanTest {
   public static void main(String[] args) {
      String jsonStr = "{\"firstName\": \"Adithya\", \"lastName\": \"Sai\", \"age\": 30, \"technology\": \"Java\"}";
      JSONObject jsonObj = (JSONObject)JSONSerializer.toJSON(jsonStr); // convert String to JSON
      System.out.println(jsonObj);
     
      Student student = (Student)JSONObject.toBean(jsonObj, Student.class); // convert JSON to Bean
      System.out.println(student.toString());
   }
   public static class Student {
      private String firstName;
      private String lastName;
      private int age;
      private String technology;
      public Student() {
      }
      public String getFirstName() {
         return firstName;
      }
      public void setFirstName(String firstName) {
         this.firstName = firstName;
      }
      public String getLastName() {
         return lastName;
      }
      public void setLastName(String lastName) {
         this.lastName = lastName;
      }
      public int getAge() {
         return age;
      }
      public void setAge(int age) {
         this.age = age;
      }
      public String getTechnology () {
         return technology;
      }
      public void setTechnology(String technology) {
         this.technology = technology;
     }
      public String toString() {
         return "Student[ " +
         "firstName = " + firstName +
         ", lastName = " + lastName +
         ", age = " + age +
         ", technology = " + technology +
         " ]";
      }
   }
}

출력

{"firstName":"Adithya","lastName":"Sai","age":30,"technology":"Java"}
Student[ firstName = Adithya, lastName = Sai, age = 30, technology = Java ]