JSON-lib API เป็น Java library สำหรับ serialize และ deserialize Java beans, maps, arrays, และ collections ในรูปแบบ JSON เราต้องแปลง JSON string เป็น bean โดยแปลง string เป็น JSON object ก่อน แล้วค่อยแปลงเป็น Java bean
Syntax
public static Object toBean(JSONObject jsonObject, Class beanClass)
ตัวอย่างการใช้งาน
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); // แปลง String เป็น JSON
System.out.println(jsonObj);
Student student = (Student) JSONObject.toBean(jsonObj, Student.class); // แปลง JSON เป็น Bean
System.out.println(student.toString());
}
public static class Student {
private String firstName, lastName, technology;
private int age;
public Student() {}
// 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 getTechnology() { return technology; }
public void setTechnology(String technology) { this.technology = technology; }
public String toString() {
return "Student[ firstName = " + firstName + ", lastName = " + lastName +
", age = " + age + ", technology = " + technology + " ]";
}
}
}
ผลลัพธ์ (Output)
{"firstName":"Adithya","lastName":"Sai","age":30,"technology":"Java"}
Student[ firstName = Adithya, lastName = Sai, age = 30, technology = Java ]
คำอธิบายขั้นตอน
- สร้าง JSON string
- ใช้
JSONSerializer.toJSON()แปลง string เป็น JSONObject - ใช้
JSONObject.toBean()แปลง JSONObject เป็น Java bean (ต้องมี no-arg constructor และ setters)
ข้อกำหนดของ Bean Class
- ต้องมี no-argument constructor (public)
- ต้องมี getter/setter สำหรับทุกฟิลด์ที่ต้องการ map
- ชื่อฟิลด์ใน JSON ต้องตรงกับ property name (camelCase)
สรุป
JSON-lib ให้วิธีการแปลง JSON string เป็น Java bean อย่างง่ายดายผ่าน 2 ขั้นตอน: String → JSONObject → Bean เหมาะสำหรับโปรเจกต์ที่ใช้ JSON-lib อยู่แล้ว หรือต้องการ library ที่เบาและง่าย