JSON หรือ JavaScript Object Notation เป็นมาตรฐานเปิดแบบข้อความที่มีน้ำหนักเบาซึ่งออกแบบมาสำหรับการแลกเปลี่ยนข้อมูลที่มนุษย์สามารถอ่านได้ โปรแกรมเมอร์รู้จักอนุสัญญาที่ใช้โดย JSON ซึ่งรวมถึง C, C++, Java, Python, Perl เป็นต้น
มีไลบรารี Java หลายไลบรารีที่พร้อมใช้งานสำหรับจัดการอ็อบเจ็กต์ JSON Jackson เป็นไลบรารีที่ใช้จาวาอย่างง่ายในการจัดลำดับออบเจกต์จาวาให้เป็น JSON และในทางกลับกัน
การแปลงวัตถุ Java เป็น JSON
ObjectMapper คลาสของ Jackson API ใน Java มีวิธีการแปลงวัตถุ Java เป็นวัตถุ JSON และในทางกลับกัน
writeValueAsString() เมธอดของคลาสนี้ยอมรับอ็อบเจกต์ JSON เป็นพารามิเตอร์และส่งกลับสตริง JSON ที่เกี่ยวข้อง
ดังนั้น ในการแปลงวัตถุ Java เป็นสตริง JSON โดยใช้ไลบรารี Jackson -
-
เพิ่มการพึ่งพา maven ต่อไปนี้ใน pom.xml ของคุณ
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.10.0.pr2</version> </dependency>
-
สร้างอ็อบเจ็กต์ javabean/POJO ด้วยตัวแปรไพรเวตและเมธอด setter/getter
-
สร้างคลาสอื่น (ตรวจสอบให้แน่ใจว่าคลาส POJO พร้อมใช้งานสำหรับสิ่งนี้)
-
ในนั้น ให้สร้างอ็อบเจ็กต์ของคลาส POJO ตั้งค่าที่ต้องการโดยใช้เมธอด setter
-
สร้างอินสแตนซ์คลาส ObjectMapper
-
เรียกใช้เมธอด writeValueAsString() โดยส่งอ็อบเจ็กต์ POJO ที่สร้างขึ้นด้านบน
-
ดึงและพิมพ์ 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}