Gson เป็นไลบรารีแปลง Java Objects เป็น JSON และในทางกลับกัน คลาสหลักคือ Gson ซึ่งสร้างได้จาก new Gson() หรือใช้ GsonBuilder เพื่อกำหนดค่าเพิ่มเติม เช่น การจัดรูปแบบสวยงาม
ตัวอย่าง: แปลง List ของอ็อบเจกต์ Person เป็น JSON
import java.util.*;
import java.util.stream.*;
import com.google.gson.*;
public class JSONConverterTest {
public static void main(String[] args) {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
List<Person> list = Stream.of(
new Person("Raja", "Ramesh", 30, "9959984800"),
new Person("Jai", "Dev", 25, "7702144400"),
new Person("Adithya", "Sai", 21, "7013536200"),
new Person("Chaitanya", "Sai", 28, "9656444150")
).collect(Collectors.toList());
System.out.println("Convert list of person objects to Json:");
String json = gson.toJson(list);
System.out.println(json);
}
}
class Person {
private String firstName, lastName, contact;
private int age;
public Person(String firstName, String lastName, int age, String contact) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.contact = contact;
}
@Override
public String toString() {
return "[" + firstName + " " + lastName + " " + age + " " + contact + "]";
}
}
ผลลัพธ์
Convert list of person objects to Json:
[
{
"firstName": "Raja",
"lastName": "Ramesh",
"contact": "9959984800",
"age": 30
},
{
"firstName": "Jai",
"lastName": "Dev",
"contact": "7702144400",
"age": 25
},
{
"firstName": "Adithya",
"lastName": "Sai",
"contact": "7013536200",
"age": 21
},
{
"firstName": "Chaitanya",
"lastName": "Sai",
"contact": "9656444150",
"age": 28
}
]
เคล็ดลับ: ใช้ GsonBuilder().setPrettyPrinting() เพื่อให้ JSON อ่านง่ายขึ้น