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

แปลงรายการของวัตถุเป็น JSON โดยใช้ไลบรารี Gson ใน Java หรือไม่


A Gson เป็นไลบรารี่ที่ใช้แปลง Java Objects เป็น JSON การเป็นตัวแทน นอกจากนี้ยังสามารถใช้เพื่อแปลงสตริง JSON เป็นวัตถุ Java ที่เทียบเท่าได้ คลาสหลักที่ใช้คือ Gson ซึ่งเราสร้างได้โดยการเรียก new Gson() และ GsonBuilder สามารถใช้คลาสเพื่อสร้าง Gson ตัวอย่าง .

เราสามารถแปลงรายการของอ็อบเจ็กต์โดยสร้าง บุคคล . ก่อน คลาสและแปลงรายการของวัตถุบุคคลเป็น 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 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); // converts to json
      System.out.println(json);
   }
}
// Person class
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;
   }
   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
}
]