Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 JSON-lib API를 사용하여 지도를 JSON 객체로 변환하는 방법은 무엇입니까?


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