如何使用 Java 中的 JSON-lib API 將 Map 轉換為 JSON 物件?


JSONObject 是無序的名稱/值對集合,而Map 則是將鍵對映到值的物件。Map 不能包含重複鍵,並且每個鍵最多隻能對映到一個值。我們需要使用JSON-lib 庫來以 JSON 格式序列化反序列化 Map。最初,我們可以建立一個 POJO 類,並將此例項作為引數傳遞給Map 類的put() 方法,最後將此對映例項新增到 JSONObject 的accumulateAll() 方法。

語法

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

更新於: 08-07-2020

5K+ 瀏覽

開啟您的職業

完成課程後獲得認證

開始
廣告