Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để chuyển đổi một Bản đồ thành đối tượng JSON bằng cách sử dụng API JSON-lib trong Java?


A JSONObject là một tập hợp không có thứ tự của tên / giá trị các cặp trong khi Bản đồ là một đối tượng ánh xạ các khóa đến các giá trị. Bản đồ không được chứa trùng lặp phím và mỗi khóa có thể ánh xạ đến nhiều nhất một giá trị. Chúng tôi cần sử dụng JSON-lib thư viện để tuần tự hóa hủy tuần tự hóa một Bản đồ ở định dạng JSON. Ban đầu, chúng ta có thể tạo một lớp POJO và chuyển trường hợp này làm đối số cho put () phương pháp của Bản đồ và cuối cùng thêm phiên bản bản đồ này vào Tích lũy thừa () phương thức của JSONObject.

Cú pháp

public void accumulateAll(Map map)

Trong ví dụ dưới đây, chúng ta có thể chuyển đổi Bản đồ thành đối tượng JSON.

Ví dụ

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;
      }
   }
}

Đầu ra

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