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

จะแปลง Map เป็นวัตถุ JSON โดยใช้ JSON-lib API ใน Java ได้อย่างไร


A JSONObject เป็นคอลเลกชันที่ไม่เรียงลำดับของ ชื่อ/ค่า คู่ในขณะที่ แผนที่ เป็นวัตถุที่จับคู่คีย์กับค่า แผนที่ไม่สามารถมี ซ้ำ กุญแจ และแต่ละคีย์สามารถจับคู่กับค่าได้ไม่เกินหนึ่งค่า เราจำเป็นต้องใช้ JSON-lib ไลบรารี่สำหรับ การทำให้เป็นอนุกรม และ ยกเลิกการซีเรียลไลซ์ แผนที่ในรูปแบบ JSON เริ่มแรก เราสามารถสร้างคลาส POJO และส่งผ่านอินสแตนซ์นี้เป็นอาร์กิวเมนต์ไปยัง put() วิธีการ แผนที่ คลาสและสุดท้ายเพิ่มอินสแตนซ์ของแผนที่นี้ใน accumulateAll() เมธอดของ JSONObject

ไวยากรณ์

public void accumulateAll(Map map)

ในตัวอย่างด้านล่าง เราสามารถแปลง Map เป็นวัตถุ JSON

ตัวอย่าง

import java.util.*;
import net.sf.json.JSONObject;

public class ConvertMapToJSONObjectTest {
   public static void main(String[] args)throws Exception {
      JSONObject jsonObject = new JSONObject();
      Map<Integer, Employee> employees = new HashMap<Integer, Employee>();

      employees.put(1, new Employee("Adithya", "Jai", 30));
      employees.put(2, new Employee("Vamsi", "Krishna", 28));
      employees.put(3, new Employee("Chaitanya", "Sai", 30));

      jsonObject.accumulateAll(employees);
      System.out.println(jsonObject.toString(3)); // pretty print JSON
   }
   public static class Employee {
      private String firstName, lastName;
      private int age;
      public Employee(String firstName, String lastName, int age) {
         super();
         this.firstName = firstName;
         this.lastName = lastName;
         this.age = age;
      }
      public String getFirstName() {
         return firstName;
      }
      public String getLastName() {
         return lastName;
      }
      public int getAge() {
         return age;
      }
   }
}

ผลลัพธ์

{
 "1": {
 "firstName": "Adithya",
 "lastName": "Jai",
 "age": 30
 },
 "2": {
 "firstName": "Vamsi",
 "lastName": "Krishna",
 "age": 28
 },
 "3": {
 "firstName": "Chaitanya",
 "lastName": "Sai",
 "age": 30
 }
}