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

วิธี Serialize Map ด้วยไลบรารี Flexjson ใน Java

Flexjson เป็นไลบรารี Lightweight สำหรับ Serialize และ Deserialize Java Object เป็น/จาก JSON Format สามารถ Serialize Map ได้โดยใช้เมธอด serialize() ของคลาส JSONSerializer ทำ Shallow Serialization ของ Target Instance

Syntax

public String serialize(Object target)

ตัวอย่าง: Serialize Map พร้อม Object ซ้อนกัน

import flexjson.JSONSerializer;
import java.util.*;

public class JsonSerializeMapTest {
    public static void main(String[] args) {
        JSONSerializer serializer = new JSONSerializer().prettyPrint(true);
        Student student = new Student("Adithya", "Sai", 28, "Hyderabad");
        
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("Student1", "Raja");
        map.put("Student2", "Ravi");
        map.put("my_student", student);
        
        String jsonStr = serializer.serialize(map);
        System.out.println(jsonStr);
    }
}

// Student class
class Student {
    private String firstName;
    private String lastName;
    private int age;
    private String address;
    
    public Student() {}
    public Student(String firstName, String lastName, int age, String address) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
        this.address = address;
    }
    
    public String getFirstName() { return firstName; }
    public String getLastName() { return lastName; }
    public int getAge() { return age; }
    public String getAddress() { return address; }
    
    public String toString() {
        return "Student[ firstName = " + firstName + ", lastName = " + lastName + 
               ", age = " + age + ", address = " + address + " ]";
    }
}

ผลลัพธ์

{
  "my_student": {
    "address": "Hyderabad",
    "age": 28,
    "class": "Student",
    "firstName": "Adithya",
    "lastName": "Sai"
  },
  "Student1": "Raja",
  "Student2": "Ravi"
}

สังเกต: Flexjson เพิ่ม field "class" เข้าไปอัตโนมัติเพื่อระบุ Type ของ Object