How to convert a Map to JSON object using JSON-lib API in Java?

A JSONObject is an unordered collection of name/value pairs whereas Map is an object that maps keys to values. A Map cannot contain duplicate keys and each key can map to at most one value. We need to use the JSON-lib library for serializing and de-serializing a Map in JSON format. Initially, we can create a POJO class and pass this instance as an argument to the put() method of Map class and finally add this map instance to the accumulateAll() method of JSONObject.


public void accumulateAll(Map map)

In the below example, we can convert Map to a JSON object.


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

      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) {
         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