এই টিউটোরিয়ালে আমরা দেখব কীভাবে দুটি লাইব্রেরি, Jackson এবং Gson ব্যবহার করে একটি জাভা অবজেক্টকে JSON-এ কনভার্ট করা যায়।
আমরা একটি Person ক্লাস ব্যবহার করব যা শুধু একটি স্ট্যান্ডার্ড POJO। একবার পারসন অবজেক্ট তৈরি করলে, আমরা এটি বিভিন্ন লাইব্রেরি ব্যবহার করে JSON-এ কনভার্ট করতে পারি।
Person.java
import java.util.List;
import java.util.Map;
public class Person {
String name;
Integer age;
List<String> hobbies;
Map<String, String> languages;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public Integer getAge() { return age; }
public void setAge(Integer age) { this.age = age; }
public List<String> getHobbies() { return hobbies; }
public void setHobbies(List<String> hobbies) { this.hobbies = hobbies; }
public Map<String, String> getLanguages() { return languages; }
public void setLanguages(Map<String, String> languages) { this.languages = languages; }
}
Jackson ব্যবহার করে জাভা থেকে JSON-এ কনভার্ট করা
জ্যাকসন লাইব্রেরির ObjectMapper ক্লাস ব্যবহার করে একটি জাভা অবজেক্টকে JSON-এ কনভার্ট করা যায়।
ObjectMapper ক্লাসে JSON ফাইলে লেখা বা স্ট্রিং হিসেবে JSON লেখার জন্য বিভিন্ন মেথড আছে।
নিচের উদাহরণে, আমরা একটি ফাইলে লিখব এবং সুন্দরভাবে ফরম্যাট করা JSON দেখানোর জন্য pretty print ফাংশন ব্যবহার করব।
প্রথমে, Maven থেকে জ্যাকসন লাইব্রেরি নিন এবং pom.xml ফাইলে ডিপেন্ডেন্সি হিসেবে যোগ করুন:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.10.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.2</version>
</dependency>
ConvertJavaObjectToJson.java
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ConvertJavaObjectToJson {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
Person person = newPerson();
try {
mapper.writeValue(new File("person.json"), person);
String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(person);
System.out.println(jsonString);
} catch (Exception e) {
e.printStackTrace();
}
}
private static Person newPerson() {
Person person = new Person();
List<String> hobbies = new ArrayList<>();
hobbies.add("Football");
hobbies.add("Cooking");
hobbies.add("Swimming");
Map<String, String> languages = new HashMap<>();
languages.put("French", "Beginner");
languages.put("German", "Intermediate");
languages.put("Spanish", "Advanced");
person.setName("David");
person.setAge(30);
person.setHobbies(hobbies);
person.setLanguages(languages);
return person;
}
}
আউটপুট:
{
"name" : "David",
"age" : 30,
"hobbies" : [ "Football", "Cooking", "Swimming" ],
"languages" : {
"French" : "Beginner",
"German" : "Intermediate",
"Spanish" : "Advanced"
}
}
প্রজেক্ট ওয়ার্কস্পেসে একটি person.json ফাইলও তৈরি হবে।
- জাভাতে JSON পার্স কীভাবে
- জাভা Map কীভাবে JSON-এ কনভার্ট করবেন
- JSON এনকোড এবং ডিকোড কীভাবে
Gson ব্যবহার করে জাভা থেকে JSON-এ কনভার্ট করা
ডিপেন্ডেন্সি যোগ করুন:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
তারপর:
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ConvertJavaObjectToJson {
public static void main(String[] args) {
Gson gson = new Gson();
Person person = newPerson();
String jsonString = gson.toJson(person);
System.out.println(jsonString);
}
private static Person newPerson() {
Person person = new Person();
List<String> hobbies = new ArrayList<>();
hobbies.add("Football");
hobbies.add("Cooking");
hobbies.add("Swimming");
Map<String, String> languages = new HashMap<>();
languages.put("French", "Beginner");
languages.put("German", "Intermediate");
languages.put("Spanish", "Advanced");
person.setName("David");
person.setAge(30);
person.setHobbies(hobbies);
person.setLanguages(languages);
return person;
}
}
আউটপুট:
{"name":"David","age":30,"hobbies":["Football","Cooking","Swimming"],"languages":{"French":"Beginner","German":"Intermediate","Spanish":"Advanced"}}