How to Convert a Vector of Objects into a JSON Array in Java?
In Java, the conversion of data structures like Vector to JSON (JavaScript Object Notation) format is required especially while working with the APIs or data interchange between different systems. The conversion of the Vector of an Object to the JSON Array has various approaches that we will learn in this article.
Approaches for Converting Vector of Objects to JSON Array
There are two possible approaches for converting the vector of Objects to a JSON Array.
- Manual Serialization
- Using Gson Library
Program to Convert a Vector of Objects into a JSON Array in Java
Below is the implementation of the two approaches.
Approach 1: Manual Serialization
In this approach, the vector elements iterate over and manually create the JSON array by using String concatenation using StringBuilder.
Here is the example program for Manual Serialization:
Java
// Java program tp Convert a Vector of Objects // Into a JSON Array using Manual Serialization package com.w3wiki; import java.util.Vector; import org.json.JSONArray; import org.json.JSONObject; // Driver Class public class ManualJsonSerialization { // Main Function public static void main(String[] args) { // Create a vector of objects Vector<Person> personVector = new Vector<>(); personVector.add( new Person( "viresh" , 18 )); personVector.add( new Person( "suresh" , 21 )); // Converting vector to JSON manually JSONArray jsonArray = new JSONArray(); for (Person person : personVector) { JSONObject jsonObject = new JSONObject(); jsonObject.put( "name" , person.getName()); jsonObject.put( "age" , person.getAge()); jsonArray.put(jsonObject); } // Printing of JSON array System.out.println(jsonArray.toString()); } } |
Below is the POJO class implementation:
Java
package com.w3wiki; class Person { private String name; private int age; public Person(String name, int age) { this .name = name; this .age = age; } public String getName() { return name; } public int getAge() { return age; } } |
Output:
[{"name":"viresh","age":18},{"name":"suresh","age":21}]
Explanation of the above program:
In the above program,
- We have created the Vector and added some data to the person object named personVector.
- After iterates over each person object in the vector, for every iteration the JSON object is created and adds the Key-Value pairs of name and age using put() method.
- Then prints the JSON array.
Approach 2: Using Gson Library
Gson is a third-party library which handles the serialization of Java objects to JSON format. The Gson Library provides the flexibility for converting the high functionality API’s for converting objects to JSON with less effort.
Here is the example program of this approach:
Java
// Java program to Convert a Vector of Objects // Into a JSON Array using Gson Library import com.google.gson.Gson; import java.util.Vector; public class GsonJsonSerialization { public static void main(String[] args) { // creating a vector of objects Vector<Person> personVector = new Vector<>(); personVector.add( new Person( "viresh" , 30 )); personVector.add( new Person( "suresh" , 25 )); // converting of vector to JSON using Gson Gson gson = new Gson(); String jsonArray = gson.toJson(personVector); // printing JSON array System.out.println(jsonArray); } } |
Output:
[{"name":"viresh","age":30},{"name":"suresh","age":25}]
Explanation of the above program:
In the above program,
- We have created the vector with person object named personVector and added some values to the object.
- We have used Gson object by which we can automatically handles the serialization process, converts each object in the vector to the JSON format and printing the result.