Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีแปลง JSON Object เป็น Bean ด้วย JSON-lib API ใน Java

คลาส JSONObject เป็นคอลเลกชันของคู่ name/value pairs (unordered) ในขณะที่ bean เป็นคลาสที่มีเมธอด setter และ getter สำหรับฟิลด์สมาชิก เราสามารถแปลง JSON object เป็น bean โดยใช้เมธอด toBean() ของคลาส JSONObject

Syntax

public static Object toBean(JSONObject jsonObject, Class beanClass)

ตัวอย่างการใช้งาน

import net.sf.json.JSONObject;

public class ConvertJSONObjToBeanTest {
    public static void main(String[] args) {
        Employee emp = new Employee("Sai", "Ram", 30, "Bangalore");
        JSONObject jsonObj = JSONObject.fromObject(emp);
        System.out.println(jsonObj.toString(3)); // pretty print JSON
        
        emp = (Employee) JSONObject.toBean(jsonObj, Employee.class);
        System.out.println(emp.toString());
    }
    
    // Employee class
    public static class Employee {
        private String firstName, lastName, address;
        private int age;
        
        public Employee() {}
        public Employee(String firstName, String lastName, int age, String address) {
            this.firstName = firstName;
            this.lastName = lastName;
            this.age = age;
            this.address = address;
        }
        
        // getters และ setters...
        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 getAddress() { return address; }
        public void setAddress(String address) { this.address = address; }
        
        public String toString() {
            return "Employee[ firstName = " + firstName + ", lastName = " + lastName + 
                   ", age = " + age + ", address = " + address + " ]";
        }
    }
}

ผลลัพธ์ (Output)

{
  "firstName": "Sai",
  "lastName": "Ram",
  "address": "Bangalore",
  "age": 30
}
Employee[ firstName = Sai, lastName = Ram, age = 30, address = Bangalore ]

คำอธิบายขั้นตอน

  1. สร้าง Java object (Employee)
  2. ใช้ JSONObject.fromObject() แปลง Java object เป็น JSONObject
  3. ใช้ JSONObject.toBean() แปลง JSONObject กลับเป็น Java bean

ข้อกำหนดของ Bean Class

  • ต้องมี no-argument constructor (public)
  • ต้องมี getter/setter สำหรับทุก property
  • Property name ต้องตรงกับ JSON field name (camelCase convention)

สรุป

JSON-lib ให้การแปลงสองทาง (round-trip) ระหว่าง Java bean และ JSONObject อย่างง่ายดาย: Bean ↔ JSONObject ↔ Bean เหมาะสำหรับโปรเจกต์ที่ใช้ JSON-lib อยู่แล้ว